1- # dependencies
21FROM caddy:2.6.2 AS caddy
32
4- # development
53FROM composer:2.4.4 AS composer
64
75ARG APPLICATION_ENV=development
@@ -47,75 +45,31 @@ RUN \
4745 --optimize; \
4846 fi
4947
50- FROM php:8.1.9-cli-alpine AS php-cli
48+ FROM dunglas/frankenphp AS frankenphp
5149
5250ARG APPLICATION_ENV=development
5351ENV APPLICATION_ENV=${APPLICATION_ENV}
5452ARG COMMIT_SHA
5553ENV COMMIT_SHA=${COMMIT_SHA}
5654
57- RUN apk add --no-cache \
58- icu \
59- imagemagick \
60- libgomp \
61- libpq \
62- libxml2 \
63- libzip && \
64- apk add --no-cache --virtual .phpize-deps \
65- $PHPIZE_DEPS \
66- icu-dev \
67- imagemagick-dev \
68- libxml2-dev \
69- libzip-dev \
70- postgresql-dev && \
71- docker-php-ext-install "-j$(nproc)" \
72- intl \
73- opcache \
74- pdo_pgsql \
75- pgsql \
76- soap \
77- zip && \
78- pecl install imagick && \
79- docker-php-ext-enable imagick && \
80- pecl install mailparse && \
81- docker-php-ext-enable mailparse && \
82- pecl install redis && \
83- docker-php-ext-enable redis && \
84- apk del .phpize-deps
85-
86- RUN apk add --no-cache \
87- openjdk11-jre && \
88- apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/main --update-cache \
89- nodejs==10.24.1-r0 \
90- npm==10.24.1-r0 && \
91- npm install -g less
92-
9355RUN mv "${PHP_INI_DIR}/php.ini-production" "${PHP_INI_DIR}/php.ini"
9456
95- COPY --from=composer /app/ /app /
57+ COPY docker/frankenphp/litus.ini /usr/local/etc/php/conf.d /
9658
97- COPY docker/php-cli/litus.ini /usr/local/etc/php/conf.d/
98- COPY docker/php-cli/entrypoint.sh /
99-
100- ENTRYPOINT ["/entrypoint.sh" ]
101-
102- FROM php:8.1.9-fpm-alpine AS php-fpm
103-
104- ARG APPLICATION_ENV=development
105- ENV APPLICATION_ENV=${APPLICATION_ENV}
106- ARG COMMIT_SHA
107- ENV COMMIT_SHA=${COMMIT_SHA}
59+ RUN install-php-extensions \
60+ imagick \
61+ intl \
62+ mailparse \
63+ opcache \
64+ pdo_pgsql \
65+ pgsql \
66+ redis \
67+ soap \
68+ zip
10869
10970RUN apk add --no-cache \
110- icu \
111- imagemagick \
112- libgomp \
113- libpq \
114- libxml2 \
115- libzip \
116- openjdk11-jre
117-
118- RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/main --update-cache \
71+ openjdk11-jre && \
72+ apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/main --update-cache \
11973 nodejs==10.24.1-r0 \
12074 npm==10.24.1-r0 && \
12175 npm install -g less
@@ -124,8 +78,6 @@ RUN curl -fsSL -o /tmp/fop-2.7-bin.tar.gz https://downloads.apache.org/xmlgraphi
12478 tar --strip-components=1 -C /opt -xzf /tmp/fop-2.7-bin.tar.gz fop-2.7/fop && \
12579 rm /tmp/fop-2.7-bin.tar.gz
12680
127- RUN mv "${PHP_INI_DIR}/php.ini-production" "${PHP_INI_DIR}/php.ini"
128-
12981RUN mkdir -p /app/public/_assetic && \
13082 mkdir -p /app/public/_common/profile && \
13183 mkdir -p /app/public/_gallery/albums && \
@@ -134,13 +86,7 @@ RUN mkdir -p /app/public/_assetic && \
13486 mkdir -p /app/public/_br/img && \
13587 chown -R www-data:www-data /app
13688
137- COPY --from=php-cli --chown=www-data:www-data /app/ /app/
138-
139- COPY --from=php-cli /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
140- COPY --from=php-cli /usr/local/lib/php/extensions/ /usr/local/lib/php/extensions/
141-
142- COPY docker/php-fpm/litus.ini /usr/local/etc/php/conf.d/
143- COPY docker/php-fpm/opcache.ini /usr/local/etc/php/conf.d/
89+ COPY --from=composer /app/ /app/
14490
14591VOLUME ["/app/public/_assetic" ]
14692VOLUME ["/app/public/_common/profile" ]
@@ -150,24 +96,3 @@ VOLUME ["/app/public/_publications/html"]
15096VOLUME ["/app/public/_br/img" ]
15197
15298VOLUME ["/data" ]
153-
154- FROM scratch
155-
156- COPY --from=caddy /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
157- COPY --from=caddy /usr/bin/caddy /usr/bin/
158-
159- COPY --from=composer /app/public/ /app/public/
160-
161- COPY docker/caddy/Caddyfile /etc/caddy/
162-
163- VOLUME ["/app/public/_assetic" ]
164- VOLUME ["/app/public/_common/profile" ]
165- VOLUME ["/app/public/_gallery/albums" ]
166- VOLUME ["/app/public/_publications/pdf" ]
167- VOLUME ["/app/public/_publications/html" ]
168- VOLUME ["/app/public/_br/img" ]
169-
170- EXPOSE 8080
171-
172- ENTRYPOINT ["caddy" ]
173- CMD ["run" , "--config" , "/etc/caddy/Caddyfile" , "--adapter" , "caddyfile" ]
0 commit comments