2022-04-20 00:07:09 +02:00
|
|
|
# Composer install
|
2021-07-10 16:18:10 +02:00
|
|
|
FROM composer:latest AS composer
|
2019-05-31 04:43:03 +02:00
|
|
|
COPY ./ /app/
|
2018-09-03 22:43:19 +02:00
|
|
|
RUN composer --no-ansi install --no-dev --ignore-platform-reqs
|
2018-08-20 23:21:02 +02:00
|
|
|
RUN composer --no-ansi dump-autoload --optimize
|
2018-02-08 22:56:44 +01:00
|
|
|
|
2022-04-20 00:07:09 +02:00
|
|
|
# Generate .mo files
|
2023-04-21 15:10:26 +02:00
|
|
|
FROM alpine AS translation
|
2019-10-06 15:50:45 +02:00
|
|
|
RUN apk add gettext
|
|
|
|
COPY resources/lang/ /data
|
2023-12-07 16:20:37 +01:00
|
|
|
RUN find /data -type f -name '*.po' -exec sh -c 'msgfmt "${1%.*}.po" -o"${1%.*}.mo"' shell {} \;
|
2019-10-06 15:50:45 +02:00
|
|
|
|
2022-04-20 00:07:09 +02:00
|
|
|
# Build the themes
|
2023-04-21 15:10:26 +02:00
|
|
|
FROM node:20-alpine AS themes
|
2022-04-20 00:07:09 +02:00
|
|
|
WORKDIR /app
|
|
|
|
COPY .babelrc .browserslistrc package.json webpack.config.js yarn.lock /app/
|
|
|
|
RUN yarn --frozen-lockfile
|
|
|
|
COPY resources/assets/ /app/resources/assets
|
|
|
|
RUN yarn build
|
|
|
|
|
|
|
|
# Generate application structure
|
2023-04-21 15:10:26 +02:00
|
|
|
FROM alpine AS data
|
2019-08-19 10:48:11 +02:00
|
|
|
COPY .babelrc .browserslistrc composer.json LICENSE package.json README.md webpack.config.js yarn.lock /app/
|
2018-09-03 21:56:49 +02:00
|
|
|
COPY bin/ /app/bin
|
2018-08-12 19:20:39 +02:00
|
|
|
COPY config/ /app/config
|
|
|
|
COPY db/ /app/db
|
|
|
|
COPY includes/ /app/includes
|
2018-08-20 23:21:02 +02:00
|
|
|
COPY public/ /app/public
|
2018-09-20 13:14:45 +02:00
|
|
|
COPY resources/views /app/resources/views
|
2018-08-12 19:20:39 +02:00
|
|
|
COPY src/ /app/src
|
2018-11-28 12:30:40 +01:00
|
|
|
COPY storage/ /app/storage
|
2018-08-12 19:20:39 +02:00
|
|
|
|
2019-10-06 15:50:45 +02:00
|
|
|
COPY --from=translation /data/ /app/resources/lang
|
2018-08-12 19:20:39 +02:00
|
|
|
COPY --from=composer /app/vendor/ /app/vendor
|
|
|
|
COPY --from=composer /app/composer.lock /app/
|
2022-04-20 00:07:09 +02:00
|
|
|
COPY --from=themes /app/public/assets /app/public/assets/
|
2018-02-08 22:56:44 +01:00
|
|
|
|
2020-10-22 17:08:00 +02:00
|
|
|
RUN find /app/storage/ -type f -not -name VERSION -exec rm {} \;
|
2019-07-21 02:34:52 +02:00
|
|
|
|
2022-04-20 00:07:09 +02:00
|
|
|
# Build the PHP/Nginx container
|
2022-12-10 21:31:20 +01:00
|
|
|
FROM php:8.2-fpm-alpine
|
2018-08-20 23:21:02 +02:00
|
|
|
WORKDIR /var/www
|
2022-04-20 00:07:09 +02:00
|
|
|
RUN apk add --no-cache icu-dev nginx && \
|
|
|
|
docker-php-ext-install intl pdo_mysql && \
|
|
|
|
sed -i 's/9000/127.0.0.1:9000/' /usr/local/etc/php-fpm.d/zz-docker.conf
|
|
|
|
COPY docker/entrypoint.sh /
|
|
|
|
COPY docker/nginx.conf /etc/nginx/nginx.conf
|
|
|
|
ENTRYPOINT /entrypoint.sh
|
|
|
|
EXPOSE 80
|
2018-12-04 02:27:10 +01:00
|
|
|
COPY --from=data /app/ /var/www
|
2019-11-27 23:43:21 +01:00
|
|
|
RUN chown -R www-data:www-data /var/www/storage/ && \
|
2018-09-20 17:37:41 +02:00
|
|
|
rm -r /var/www/html
|
2018-08-13 16:30:27 +02:00
|
|
|
|
2019-07-26 13:32:54 +02:00
|
|
|
ARG VERSION
|
2020-06-24 13:01:24 +02:00
|
|
|
RUN if [[ ! -f /var/www/storage/app/VERSION ]] && [[ ! -z "${VERSION}" ]]; then \
|
|
|
|
echo -n "${VERSION}" > /var/www/storage/app/VERSION; fi
|
2019-07-26 13:32:54 +02:00
|
|
|
|
2018-08-13 16:30:27 +02:00
|
|
|
ENV TRUSTED_PROXIES 10.0.0.0/8,::ffff:10.0.0.0/8,\
|
|
|
|
127.0.0.0/8,::ffff:127.0.0.0/8,\
|
|
|
|
172.16.0.0/12,::ffff:172.16.0.0/12,\
|
|
|
|
192.168.0.0/16,::ffff:192.168.0.0/16,\
|
|
|
|
::1/128,fc00::/7,fec0::/10
|