summaryrefslogtreecommitdiff
path: root/docker/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'docker/Dockerfile')
-rw-r--r--docker/Dockerfile48
1 files changed, 48 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 00000000..013ccf1d
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,48 @@
+# composer install
+FROM composer AS composer
+COPY ./ /app/
+RUN composer --no-ansi install --no-dev --ignore-platform-reqs
+RUN composer --no-ansi dump-autoload --optimize
+
+# Intermediate containers for less layers
+FROM alpine as translation
+RUN apk add gettext
+COPY resources/lang/ /data
+RUN find /data -type f -name '*.po' -exec sh -c 'file="{}"; msgfmt "${file%.*}.po" -o "${file%.*}.mo"' \;
+
+FROM alpine as data
+COPY .babelrc .browserslistrc composer.json LICENSE package.json README.md webpack.config.js yarn.lock /app/
+COPY bin/ /app/bin
+COPY config/ /app/config
+COPY db/ /app/db
+RUN mkdir /app/import/
+COPY includes/ /app/includes
+COPY public/ /app/public
+COPY resources/views /app/resources/views
+COPY src/ /app/src
+COPY storage/ /app/storage
+
+COPY --from=translation /data/ /app/resources/lang
+COPY --from=composer /app/vendor/ /app/vendor
+COPY --from=composer /app/composer.lock /app/
+
+RUN find /app/storage/ -type f -not -name .gitignore -exec rm {} \;
+RUN rm -f /app/config/config.php
+
+# Build the PHP container
+FROM php:7-fpm-alpine
+WORKDIR /var/www
+RUN apk add --no-cache icu-dev && \
+ docker-php-ext-install intl pdo_mysql
+COPY --from=data /app/ /var/www
+RUN chown -R www-data:www-data /var/www/import/ /var/www/storage/ && \
+ rm -r /var/www/html
+
+ARG VERSION
+RUN if [[ ! -f /var/www/storage/app/VERSION ]] && [[ ! -z "${VERSION}" ]]; then echo -n "${VERSION}" > /var/www/storage/app/VERSION; fi
+
+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