@@ -4,27 +4,35 @@ ARG NGINX_VERSION={{ NGINX_VERSION }}
44##############
55# BASE #
66##############
7+ # things that needs to happen both in dev and prod stage
78FROM {{ FPM_FROM }}:${PHP_GEEKSTUFF_VERSION} AS base
8- # Add things that needs to happen both in dev and prod stage
99
10+ {% block base %}
11+ {% block base_extras %}{% endblock %}
12+ {% endblock %}
1013
1114##############
1215# BUILDTOOLS #
1316##############
14- FROM base AS buildtools
15- # Add things needed during both dev and build phase.
17+ # things needed during both dev and build phase.
1618# Example: composer, npm, grunt, gulp, etc.
19+ FROM base AS buildtools
1720
21+ {% block buildtools %}
1822# few basic tools
1923ENV COMPOSER_VERSION={{ COMPOSER_VERSION }}
2024RUN /scripts/install-buildtools
2125
26+ {% block buildtools_extras %}{% endblock %}
27+ {% endblock %}
2228
2329##############
2430# DEV #
2531##############
2632FROM buildtools AS dev
2733
34+ {% block dev %}
35+ {% block dev_ini_xdebug %}
2836## Env
2937ENV APP_ENV=dev \
3038 PHP_IDE_CONFIG="serverName=php-docker-dev" \
@@ -54,20 +62,30 @@ RUN apk add --update --no-cache --virtual .build-dependencies $PHPIZE_DEPS \
5462 && docker-php-ext-enable xdebug \
5563 && pecl clear-cache \
5664 && apk del .build-dependencies
65+ {% endblock %}
5766
58- ## Switch to php user
59- RUN create-php-user ${PHP_USER_ID}
67+ ## Create php user, specify stage in PS1 prompt
68+ RUN create-php-user ${PHP_USER_ID} \
69+ && echo 'export PS1="(dev) \h:\w\$ "' >> /home/${PHP_USER_NAME}/.bashrc
70+
71+ # Switch to user
6072USER ${PHP_USER_NAME}
6173
74+ {% block dev_extras %}{% endblock %}
75+ {% endblock %}
6276
6377##############
6478# BUILD #
6579##############
6680FROM buildtools AS build
6781
82+ {% block build %}
6883## ENV
84+ {% block build_env %}
6985ENV APP_ENV=prod \
7086 TZ={{ TIMEZONE }}
87+ {% block build_env_extras %}{% endblock %}
88+ {% endblock %}
7189
7290## Create php user
7391RUN create-php-user ${PHP_USER_ID} \
@@ -76,43 +94,53 @@ RUN create-php-user ${PHP_USER_ID} \
7694## Copy code
7795COPY --chown=${PHP_USER_NAME}:${PHP_USER_NAME} . /app
7896
79- ## Init & Optimise Symfony app
97+ ## Init & Optimise app
8098USER ${PHP_USER_NAME}
81- RUN composer install --no-dev \
82- && bin/console cache:clear --env=prod \
83- && bin/console assets:install public \
84- && composer dump-env prod \
85- && composer dump-autoload --no-dev --classmap-authoritative
99+ {% block build_framework %}
100+ RUN composer install --no-dev
101+ {% endblock %}
86102
103+ {% block build_extras %}{% endblock %}
104+ {% endblock %}
87105
88106##############
89107# NGINX #
90108##############
91109FROM {{ NGINX_FROM }}:${NGINX_VERSION} AS nginx
92110
111+ {% block nginx %}
93112WORKDIR /app
94113
95114## Copy some generated files from our build
96115COPY --from=build --chown=nginx:nginx /app/public /app/public
97116
117+ {% block nginx_extras %}{% endblock %}
118+ {% endblock %}
98119
99120##############
100121# PROD #
101122##############
102123FROM base AS prod
103124
125+ {% block prod %}
104126## Create php user
105127RUN create-php-user ${PHP_USER_ID} \
106128 && rm -f /app/.empty
107129
108- ## Copy generated files from our build (and we could exclude some from public/)
130+ ## Copy generated files from our build
131+ {% block prod_copy %}
109132COPY --from=build --chown=${PHP_USER_NAME}:${PHP_USER_NAME} /app .
133+ {% endblock %}
110134
111135## ENV
136+ {% block prod_env %}
112137ENV APP_ENV=prod \
113138 TZ={{ TIMEZONE }}
139+ {% block prod_env_extras %}{% endblock %}
140+ {% endblock %}
114141
115142## Php ini
143+ {% block prod_ini %}
116144RUN { \
117145 echo "[PHP]"; \
118146 echo "display_errors = 0"; \
@@ -121,10 +149,16 @@ RUN { \
121149 echo "expose_php = 0"; \
122150 echo ""; \
123151 echo "[opcache]"; \
124- echo "opcache.preload = /app/var/cache/prod/App_KernelProdContainer.preload.php "; \
152+ echo "{% block prod_opcache_preload %}{% endblock %} "; \
125153 echo "opcache.validate_timestamps = 0"; \
126154 } > "$PHP_INI_DIR/php.ini"
127155#RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
156+ {% block prod_ini_extras %}{% endblock %}
157+ {% endblock %}
128158
129159## Switch to php user
130160USER ${PHP_USER_NAME}
161+ {% endblock %}
162+
163+
164+ # Generated {{ GENERATED_AT }} by [Dockerizer](https://github.com/geekstuff-it/php-fpm-nginx-alpine-dockerizer)
0 commit comments