From 2a3fe990dd0730fce9465bbef6ad1a01054f775d Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Sun, 17 Jun 2018 01:02:50 +0200 Subject: [PATCH] docker: build the images from the local sources Relates to https://github.com/shaarli/Shaarli/issues/1153 Signed-off-by: VirtualTam --- {docker => .docker}/.htaccess | 0 {docker/alpine => .docker}/nginx.conf | 0 {docker/alpine => .docker}/php-fpm.conf | 0 .../services.d/.s6-svscan/finish | 0 .../alpine => .docker}/services.d/nginx/run | 0 .../alpine => .docker}/services.d/php-fpm/run | 0 .dockerignore | 51 ++++++++++++++++++ .gitattributes | 4 +- docker/alpine/Dockerfile.master => Dockerfile | 29 ++++++---- ...ockerfile.armhf.master => Dockerfile.armhf | 8 +-- docker/alpine/Dockerfile.armhf.latest | 49 ----------------- docker/alpine/Dockerfile.latest | 54 ------------------- docker/alpine/IMAGE.md | 10 ---- 13 files changed, 76 insertions(+), 129 deletions(-) rename {docker => .docker}/.htaccess (100%) rename {docker/alpine => .docker}/nginx.conf (100%) rename {docker/alpine => .docker}/php-fpm.conf (100%) rename {docker/alpine => .docker}/services.d/.s6-svscan/finish (100%) rename {docker/alpine => .docker}/services.d/nginx/run (100%) rename {docker/alpine => .docker}/services.d/php-fpm/run (100%) create mode 100644 .dockerignore rename docker/alpine/Dockerfile.master => Dockerfile (75%) rename docker/alpine/Dockerfile.armhf.master => Dockerfile.armhf (87%) delete mode 100644 docker/alpine/Dockerfile.armhf.latest delete mode 100644 docker/alpine/Dockerfile.latest delete mode 100644 docker/alpine/IMAGE.md diff --git a/docker/.htaccess b/.docker/.htaccess similarity index 100% rename from docker/.htaccess rename to .docker/.htaccess diff --git a/docker/alpine/nginx.conf b/.docker/nginx.conf similarity index 100% rename from docker/alpine/nginx.conf rename to .docker/nginx.conf diff --git a/docker/alpine/php-fpm.conf b/.docker/php-fpm.conf similarity index 100% rename from docker/alpine/php-fpm.conf rename to .docker/php-fpm.conf diff --git a/docker/alpine/services.d/.s6-svscan/finish b/.docker/services.d/.s6-svscan/finish similarity index 100% rename from docker/alpine/services.d/.s6-svscan/finish rename to .docker/services.d/.s6-svscan/finish diff --git a/docker/alpine/services.d/nginx/run b/.docker/services.d/nginx/run similarity index 100% rename from docker/alpine/services.d/nginx/run rename to .docker/services.d/nginx/run diff --git a/docker/alpine/services.d/php-fpm/run b/.docker/services.d/php-fpm/run similarity index 100% rename from docker/alpine/services.d/php-fpm/run rename to .docker/services.d/php-fpm/run diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a0d28dc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,51 @@ +# Docker-ignore +.dev +.git +.github +tests + +# Shaarli runtime resources +cache/* +data/* +pagecache/* +tmp/* + +# Eclipse project files +.settings +.buildpath +.project + +# Raintpl generated pages +*.rtpl.php + +# 3rd-party dependencies +vendor/ + +# Release archives +*.tar.gz +*.zip +inc/languages/*/LC_MESSAGES/shaarli.mo + +# Development and test resources +coverage +doxygen +sandbox +phpmd.html + +# User plugin configuration +plugins/*/config.php + +# 3rd party themes +tpl/* +!tpl/default +!tpl/vintage + +# Front end +node_modules +tpl/default/js +tpl/default/css +tpl/default/fonts +tpl/default/img +tpl/vintage/js +tpl/vintage/css +tpl/vintage/img diff --git a/.gitattributes b/.gitattributes index 6b6ffbd..9d22f11 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,7 +33,9 @@ Dockerfile text .travis.yml export-ignore doc/**/*.json export-ignore doc/**/*.md export-ignore -docker/ export-ignore +.docker/ export-ignore +.dockerignore export-ignore +Dockerfile* export-ignore Doxyfile export-ignore Makefile export-ignore node_modules/ export-ignore diff --git a/docker/alpine/Dockerfile.master b/Dockerfile similarity index 75% rename from docker/alpine/Dockerfile.master rename to Dockerfile index 7bbe1fb..4cda6f3 100644 --- a/docker/alpine/Dockerfile.master +++ b/Dockerfile @@ -1,13 +1,20 @@ # Stage 1: -# - Get Shaarli sources -# - Resolve PHP dependencies with Composer -FROM composer:latest as composer -RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \ - && mv Shaarli-master shaarli \ - && cd shaarli \ - && composer --prefer-dist --no-dev install +# - 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 @@ -16,7 +23,7 @@ RUN cd shaarli \ && yarn run build \ && rm -rf node_modules -# Stage 3: +# Stage 4: # - Shaarli image FROM alpine:3.6 LABEL maintainer="Shaarli Community" @@ -39,9 +46,9 @@ RUN apk --update --no-cache add \ php7-zlib \ s6 -COPY nginx.conf /etc/nginx/nginx.conf -COPY php-fpm.conf /etc/php7/php-fpm.conf -COPY services.d /etc/services.d +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 \ diff --git a/docker/alpine/Dockerfile.armhf.master b/Dockerfile.armhf similarity index 87% rename from docker/alpine/Dockerfile.armhf.master rename to Dockerfile.armhf index 6c89adc..5dcc34a 100644 --- a/docker/alpine/Dockerfile.armhf.master +++ b/Dockerfile.armhf @@ -1,5 +1,5 @@ FROM lsiobase/alpine.armhf:3.6 -MAINTAINER Shaarli Community +LABEL maintainer="Shaarli Community" RUN apk --update --no-cache add \ ca-certificates \ @@ -21,9 +21,9 @@ RUN apk --update --no-cache add \ php7-zlib \ s6 -COPY nginx.conf /etc/nginx/nginx.conf -COPY php-fpm.conf /etc/php7/php-fpm.conf -COPY services.d /etc/services.d +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 curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \ && rm -rf /etc/php7/php-fpm.d/www.conf \ diff --git a/docker/alpine/Dockerfile.armhf.latest b/docker/alpine/Dockerfile.armhf.latest deleted file mode 100644 index 824a192..0000000 --- a/docker/alpine/Dockerfile.armhf.latest +++ /dev/null @@ -1,49 +0,0 @@ -FROM lsiobase/alpine.armhf:3.6 -MAINTAINER Shaarli Community - -RUN apk --update --no-cache add \ - ca-certificates \ - curl \ - nginx \ - php7 \ - php7-ctype \ - php7-curl \ - php7-fpm \ - php7-gd \ - php7-iconv \ - php7-intl \ - php7-json \ - php7-mbstring \ - php7-openssl \ - php7-phar \ - php7-session \ - php7-xml \ - php7-zlib \ - s6 - -COPY nginx.conf /etc/nginx/nginx.conf -COPY php-fpm.conf /etc/php7/php-fpm.conf -COPY services.d /etc/services.d - -RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \ - && 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 -RUN curl -L https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar xzf - \ - && mv Shaarli-latest shaarli \ - && cd shaarli \ - && composer --prefer-dist --no-dev install \ - && rm -rf ~/.composer \ - && 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 [] diff --git a/docker/alpine/Dockerfile.latest b/docker/alpine/Dockerfile.latest deleted file mode 100644 index 755d875..0000000 --- a/docker/alpine/Dockerfile.latest +++ /dev/null @@ -1,54 +0,0 @@ -# Stage 1: -# - Get Shaarli sources -# - Resolve PHP dependencies with Composer -FROM composer:latest as composer -RUN curl -L https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar xzf - \ - && mv Shaarli-latest shaarli \ - && cd shaarli \ - && composer --prefer-dist --no-dev install - -# Stage 2: -# - 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 nginx.conf /etc/nginx/nginx.conf -COPY php-fpm.conf /etc/php7/php-fpm.conf -COPY 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=composer /app/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 [] diff --git a/docker/alpine/IMAGE.md b/docker/alpine/IMAGE.md deleted file mode 100644 index a895225..0000000 --- a/docker/alpine/IMAGE.md +++ /dev/null @@ -1,10 +0,0 @@ -## Alpine images -- [Alpine Linux](https://www.alpinelinux.org/) -- [PHP-FPM](http://php-fpm.org/) -- [Nginx](http://nginx.org/) - -### `shaarli/shaarli:latest` -- [Shaarli](https://github.com/shaarli/Shaarli), `latest` branch - -### `shaarli/shaarli:master` -- [Shaarli](https://github.com/shaarli/Shaarli), `master` branch