From 1756c423ebda7a72d918b9c38cb869e8252806f1 Mon Sep 17 00:00:00 2001 From: YFdyh000 Date: Sun, 22 Aug 2021 18:36:12 +0800 Subject: [PATCH] add Dockerfile.php8 --- Dockerfile.php8 | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Dockerfile.php8 diff --git a/Dockerfile.php8 b/Dockerfile.php8 new file mode 100644 index 000000000..97ff282d3 --- /dev/null +++ b/Dockerfile.php8 @@ -0,0 +1,85 @@ +# Stage 1: +# - Resolve PHP dependencies with Composer +FROM composer:latest as composer +COPY composer.json composer.lock /tmp/shaarli/ +WORKDIR /tmp/shaarli +RUN composer --prefer-dist --no-dev install +RUN composer update --ignore-platform-req=php && \ + composer remove --dev --ignore-platform-req=php phpunit/phpunit && \ + composer require --dev --ignore-platform-req=php phpunit/php-text-template ^2.0 && \ + composer require --dev --ignore-platform-req=php phpunit/phpunit ^9.0 + +# Stage 2: +# - Frontend dependencies +FROM node:12-alpine as app +COPY --chown=nginx:nginx . /tmp/shaarli/ +WORKDIR /tmp/shaarli +RUN yarn install \ + && yarn run build \ + && rm -rf ./node_modules + +# Stage 3: +# - Build documentation +FROM python:3-alpine as docs + +COPY mkdocs.yml /tmp/shaarli/ +COPY --chown=nginx:nginx doc /tmp/shaarli/doc/ +WORKDIR /tmp/shaarli/ +RUN pip install --no-cache-dir mkdocs \ + && mkdocs build --clean + +# Stage 4: +# - Shaarli image +LABEL maintainer="Shaarli Community" + +FROM alpine:3.14 as php +WORKDIR /var/www + +# Invalidation cache while new release +COPY --chown=nginx:nginx shaarli_version.php /var/www/shaarli/ + +RUN apk --update add \ + ca-certificates \ + nginx \ + php8 \ + php8-ctype \ + php8-curl \ + php8-fpm \ + php8-gd \ + php8-iconv \ + php8-intl \ + php8-json \ + php8-mbstring \ + php8-openssl \ + php8-session \ + php8-xml \ + php8-simplexml \ + php8-zlib \ + s6 + +COPY --chown=nginx:nginx .docker/nginx.conf /etc/nginx/nginx.conf +COPY --chown=nginx:nginx .docker/php-fpm.conf /etc/php8/php-fpm.conf +COPY --chown=nginx:nginx .docker/services.d /etc/services.d +RUN sed -i 's/php-fpm7/php-fpm8/' /etc/services.d/php-fpm/run + +RUN rm -rf /etc/php8/php-fpm.d/www.conf \ + && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php8/php.ini \ + && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php8/php.ini + +COPY --chown=nginx:nginx --from=composer /tmp/shaarli /var/www/shaarli/ +COPY --chown=nginx:nginx --from=app /tmp/shaarli /var/www/shaarli/ +COPY --chown=nginx:nginx --from=docs /tmp/shaarli /var/www/shaarli/ + +# disabled due to https://github.com/docker/for-linux/issues/388 +#RUN chown -R nginx:nginx /var/www/shaarli/ + +RUN ln -sf /dev/stdout /var/log/nginx/shaarli.access.log \ + && ln -sf /dev/stderr /var/log/nginx/shaarli.error.log + +VOLUME /var/www/shaarli/cache +VOLUME /var/www/shaarli/data + +EXPOSE 80 + +ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"] +CMD []