This repository has been archived by the owner on May 24, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.production
68 lines (50 loc) · 1.92 KB
/
Dockerfile.production
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
FROM composer:2.7
FROM php:8.3.3-fpm-alpine3.19
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
RUN apk add --no-cache --virtual .persistent-deps \
nginx \
supervisor \
npm
RUN install-php-extensions \
intl \
pdo_mysql \
zip \
pcntl
RUN npm install -g ts-node
COPY --from=0 /usr/bin/composer /usr/bin/composer
COPY docker/prod/php/conf.d/php.ini /usr/local/etc/php/php.ini
COPY docker/prod/php/conf.d/error_reporting.ini /usr/local/etc/php/conf.d/error_reporting.ini
COPY docker/prod/supervisord.conf /etc/supervisord.conf
COPY docker/prod/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
COPY docker/prod/docker_entry.sh /usr/local/bin/docker_entry
RUN chmod +x /usr/local/bin/docker-entrypoint
RUN chmod +x /usr/local/bin/docker_entry
COPY docker/prod/nginx/conf.d/ /etc/nginx/http.d/
RUN ls /etc/nginx/http.d
WORKDIR /srv
ENTRYPOINT ["docker-entrypoint"]
CMD ["docker_entry"]
# https://getcomposer.org/doc/03-cli.md#composer-allow-superuser
ENV COMPOSER_ALLOW_SUPERUSER 1
# Caprover sends environments as arguments, we need to convert them back to environments
ARG APP_ENV=${APP_ENV}
ENV APP_ENV=$APP_ENV
ARG SENTRY_DSN=${SENTRY_DSN}
ENV SENTRY_DSN=$SENTRY_DSN
ARG DATABASE_URL=${DATABASE_URL}
ENV DATABASE_URL=$DATABASE_URL
# Prevent the reinstallation of vendors at every changes in the source code
COPY composer.json composer.lock ./
RUN composer install --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress \
&& composer clear-cache
COPY . ./
RUN mkdir -p var/cache var/logs var/sessions \
&& composer dump-autoload --classmap-authoritative --no-dev \
&& chown -R www-data:www-data var
RUN rm -rf /etc/nginx/sites-enabled \
&& mkdir -p /etc/nginx/sites-enabled
#RUN /srv/bin/console doctrine:migrations:migrate -n --env=prod
RUN chmod -R 777 /srv/public \
&& chmod -R 777 /srv/var/cache \
&& chmod -R 777 /srv/var/logs
EXPOSE 80