1
1
# ############################################################
2
- # PHP-FPM #
2
+ # GLOBAL ARGS #
3
3
# ############################################################
4
+
4
5
ARG PHP_VERSION=7.4
5
- ARG NODE_VERSION=14
6
6
ARG 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
+
7
45
8
46
FROM php:${PHP_VERSION}-fpm-alpine AS server-for-symfony-flex-php
9
47
@@ -71,7 +109,9 @@ RUN set -eux; \
71
109
72
110
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
73
111
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
75
115
76
116
ARG FPM_PORT=9000
77
117
COPY docker/php/www.conf.template /usr/local/etc/php-fpm.d/www.conf.template
@@ -104,43 +144,14 @@ RUN set -eux; \
104
144
chmod +x bin/console; \
105
145
sync
106
146
147
+ COPY --from=server-for-symfony-flex-nodejs /srv/server-for-symfony-flex/public public/
148
+
107
149
COPY docker/php/php-entrypoint.sh /usr/local/bin/docker-entrypoint
108
150
RUN chmod +x /usr/local/bin/docker-entrypoint
109
151
110
152
ENTRYPOINT ["docker-entrypoint" ]
111
153
CMD ["php-fpm" ]
112
154
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
-
144
155
# ############################################################
145
156
# NGINX #
146
157
# ############################################################
@@ -151,17 +162,18 @@ WORKDIR /srv/server-for-symfony-flex
151
162
COPY docker/nginx/nginx.conf /etc/nginx/nginx.conf
152
163
153
164
ARG NGINX_PORT=8080
165
+ ARG FPM_HOSTNAME=localhost
154
166
ARG FPM_PORT=9000
155
167
COPY 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
157
169
158
170
COPY --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/
160
171
161
172
RUN apk add --no-cache bash
162
173
163
174
COPY docker/nginx/wait-for-it.sh /
164
175
RUN chmod +x /wait-for-it.sh
165
176
166
177
ENV 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