11# ############################################################
2- # PHP-FPM #
2+ # GLOBAL ARGS #
33# ############################################################
4+
45ARG PHP_VERSION=7.4
5- ARG NODE_VERSION=14
66ARG NGINX_VERSION=1.21
7+ ARG NODE_VERSION=14
8+
9+ # ############################################################
10+ # NODEJS #
11+ # ############################################################
12+
13+ FROM node:${NODE_VERSION}-alpine AS server-for-symfony-flex-nodejs
14+
15+ WORKDIR /srv/server-for-symfony-flex
16+
17+ RUN set -eux; \
18+ apk add --no-cache \
19+ g++ \
20+ gcc \
21+ git \
22+ make \
23+ python2 \
24+ ;
25+
26+ COPY package.json package-lock.json webpack.config.js ./
27+ COPY assets ./assets
28+
29+ RUN set -eux; \
30+ npm install ; \
31+ npm cache clean --force
32+
33+ RUN npm run build
34+
35+ COPY docker/nodejs/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
36+ RUN chmod +x /usr/local/bin/docker-entrypoint
37+
38+ ENTRYPOINT ["docker-entrypoint" ]
39+ CMD ["npm" , "run" , "watch" ]
40+
41+ # ############################################################
42+ # PHP-FPM #
43+ # ############################################################
44+
745
846FROM php:${PHP_VERSION}-fpm-alpine AS server-for-symfony-flex-php
947
@@ -71,7 +109,9 @@ RUN set -eux; \
71109
72110COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
73111
74- COPY docker/php/php.ini /usr/local/etc/php/php.ini
112+ ARG PHP_DATE_TIMEZONE=UTC
113+ COPY docker/php/php.ini.template /usr/local/etc/php/php.ini.template
114+ RUN envsubst '${PHP_DATE_TIMEZONE}' < /usr/local/etc/php/php.ini.template > /usr/local/etc/php/php.ini
75115
76116ARG FPM_PORT=9000
77117COPY docker/php/www.conf.template /usr/local/etc/php-fpm.d/www.conf.template
@@ -104,43 +144,14 @@ RUN set -eux; \
104144 chmod +x bin/console; \
105145 sync
106146
147+ COPY --from=server-for-symfony-flex-nodejs /srv/server-for-symfony-flex/public public/
148+
107149COPY docker/php/php-entrypoint.sh /usr/local/bin/docker-entrypoint
108150RUN chmod +x /usr/local/bin/docker-entrypoint
109151
110152ENTRYPOINT ["docker-entrypoint" ]
111153CMD ["php-fpm" ]
112154
113- # ############################################################
114- # NODEJS #
115- # ############################################################
116- FROM node:${NODE_VERSION}-alpine AS server-for-symfony-flex-nodejs
117-
118- WORKDIR /srv/server-for-symfony-flex
119-
120- RUN set -eux; \
121- apk add --no-cache \
122- g++ \
123- gcc \
124- git \
125- make \
126- python2 \
127- ;
128-
129- COPY package.json package-lock.json webpack.config.js ./
130- COPY assets ./assets
131-
132- RUN set -eux; \
133- npm install ; \
134- npm cache clean --force
135-
136- RUN npm run build
137-
138- COPY docker/nodejs/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
139- RUN chmod +x /usr/local/bin/docker-entrypoint
140-
141- ENTRYPOINT ["docker-entrypoint" ]
142- CMD ["npm" , "run" , "watch" ]
143-
144155# ############################################################
145156# NGINX #
146157# ############################################################
@@ -151,17 +162,18 @@ WORKDIR /srv/server-for-symfony-flex
151162COPY docker/nginx/nginx.conf /etc/nginx/nginx.conf
152163
153164ARG NGINX_PORT=8080
165+ ARG FPM_HOSTNAME=localhost
154166ARG FPM_PORT=9000
155167COPY docker/nginx/conf.d/default.conf.template /etc/nginx/conf.d/default.conf.template
156- RUN envsubst '${NGINX_PORT} ${FPM_PORT}' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf
168+ RUN envsubst '${NGINX_PORT} ${FPM_HOSTNAME} ${ FPM_PORT}' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf
157169
158170COPY --from=server-for-symfony-flex-php /srv/server-for-symfony-flex/public public/
159- COPY --from=server-for-symfony-flex-nodejs /srv/server-for-symfony-flex/public public/
160171
161172RUN apk add --no-cache bash
162173
163174COPY docker/nginx/wait-for-it.sh /
164175RUN chmod +x /wait-for-it.sh
165176
166177ENV FPM_PORT=$FPM_PORT
167- CMD /wait-for-it.sh -t 0 localhost:$FPM_PORT -- nginx -g "daemon off;"
178+ ENV FPM_HOSTNAME=$FPM_HOSTNAME
179+ CMD /wait-for-it.sh -t 0 $FPM_HOSTNAME:$FPM_PORT -- nginx -g "daemon off;"
0 commit comments