-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile.dev
More file actions
executable file
·89 lines (83 loc) · 3.25 KB
/
Dockerfile.dev
File metadata and controls
executable file
·89 lines (83 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# ---- Base Image ----
FROM php:7.4-fpm-alpine AS base
# Set working directory
WORKDIR /var/www/html
ARG UID=1000
ARG GID=1000
RUN apk --update add \
build-base \
autoconf \
git \
icu-dev \
gpgme-dev \
gpgme \
libzip-dev \
postgresql-dev \
rabbitmq-c \
rabbitmq-c-dev \
zip \
shadow \
\
&& docker-php-ext-install -j$(nproc) \
intl \
bcmath\
opcache \
pdo \
pdo_pgsql \
zip \
sockets \
\
&& pecl install gnupg redis amqp \
&& docker-php-ext-enable redis amqp \
\
&& usermod -u $UID www-data
RUN mkdir -p /var/www/html /var/www/html/vendor /var/www/html/public/static /var/www/html/var/cache /var/www/html/var/log /var/www/html/var/sessions /var/www/html/var/jwt \
&& chown -R www-data /var/www/html /var/www/html/vendor /var/www/html/var/cache /var/www/html/var/jwt
# Composer part
COPY --from=composer:1 /usr/bin/composer /usr/bin/composer
ENV COMPOSER_MEMORY_LIMIT -1
# ENV COMPOSER_ALLOW_SUPERUSER 1
RUN composer global require hirak/prestissimo --prefer-dist --no-progress --no-suggest --optimize-autoloader --no-interaction --no-plugins --no-scripts
# Run in production mode
ENV APP_ENV=prod
# Copy project file
COPY composer.json .
COPY composer.lock .
ARG XDEBUG_REMOTE_HOST=172.17.0.1
ARG XDEBUG_REMOTE_ENABLE=1
ARG XDEBUG_REMOTE_AUTOSTART=1
ARG XDEBUG_REMOTE_CONNECT_BACK=1
ARG XDEBUG_IDEKEY=PHPSTORM
ARG XDEBUG_REMOTE_PORT=9001
ARG XDEBUG_PROFILER_ENABLE=0
ARG XDEBUG_PROFILER_ENABLE_TRIGGER=1
RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS coreutils \
&& yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=${XDEBUG_REMOTE_ENABLE}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=${XDEBUG_REMOTE_AUTOSTART}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_host=${XDEBUG_REMOTE_HOST}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_port=${XDEBUG_REMOTE_PORT}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_connect_back=${XDEBUG_REMOTE_CONNECT_BACK}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.idekey=${XDEBUG_IDEKEY}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.profiler_enable=${XDEBUG_PROFILER_ENABLE}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.profiler_enable_trigger=${XDEBUG_PROFILER_ENABLE_TRIGGER}" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.profiler_output_dir=/var/www/GDL/var/profiler_snapshots" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.max_nesting_level=9999" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& apk del .build-deps
## ---- Webpack Encore ----
FROM node:lts-alpine AS yarn-enc
COPY . .
RUN yarn install && yarn encore production
# ---- Release ----
FROM base AS release
WORKDIR /var/www/html
COPY --chown=www-data:www-data src src
COPY --chown=www-data:www-data --from=yarn-enc ./public/build /var/www/html/public/build
COPY ./config/docker/php/symfony.ini /usr/local/etc/php/conf.d
COPY bin/fix-permissions.sh /usr/local/bin/
COPY entrypoint.sh /usr/local/bin/
USER www-data
# expose port and define CMD
EXPOSE 9000
ENTRYPOINT ["entrypoint.sh"]