X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=Dockerfile;fp=Dockerfile;h=4cda6f31316183493b65b33bb6c6dab26f680465;hb=2a3fe990dd0730fce9465bbef6ad1a01054f775d;hp=0000000000000000000000000000000000000000;hpb=7cf436cea4d05fe667c479be8b909c55c3f1da40;p=github%2Fshaarli%2FShaarli.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..4cda6f31 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,70 @@ +# Stage 1: +# - Copy Shaarli sources +# - Build documentation +FROM python:3-alpine as docs +ADD . /usr/src/app/shaarli +RUN cd /usr/src/app/shaarli \ + && pip install --no-cache-dir mkdocs \ + && mkdocs build + +# Stage 2: +# - Resolve PHP dependencies with Composer +FROM composer:latest as composer +COPY --from=docs /usr/src/app/shaarli /app/shaarli +RUN cd shaarli \ + && composer --prefer-dist --no-dev install + +# Stage 3: +# - Frontend dependencies +FROM node:9.9-alpine as node +COPY --from=composer /app/shaarli shaarli +RUN cd shaarli \ + && yarn install \ + && yarn run build \ + && rm -rf node_modules + +# Stage 4: +# - Shaarli image +FROM alpine:3.6 +LABEL maintainer="Shaarli Community" + +RUN apk --update --no-cache add \ + ca-certificates \ + nginx \ + php7 \ + php7-ctype \ + php7-curl \ + php7-fpm \ + php7-gd \ + php7-iconv \ + php7-intl \ + php7-json \ + php7-mbstring \ + php7-openssl \ + php7-session \ + php7-xml \ + php7-zlib \ + s6 + +COPY .docker/nginx.conf /etc/nginx/nginx.conf +COPY .docker/php-fpm.conf /etc/php7/php-fpm.conf +COPY .docker/services.d /etc/services.d + +RUN rm -rf /etc/php7/php-fpm.d/www.conf \ + && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \ + && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini + + +WORKDIR /var/www +COPY --from=node /shaarli shaarli + +RUN chown -R nginx:nginx . \ + && ln -sf /dev/stdout /var/log/nginx/shaarli.access.log \ + && ln -sf /dev/stderr /var/log/nginx/shaarli.error.log + +VOLUME /var/www/shaarli/data + +EXPOSE 80 + +ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"] +CMD []