Browse Source

docker: build the images from the local sources

Relates to https://github.com/shaarli/Shaarli/issues/1153

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
VirtualTam 1 year ago
parent
commit
2a3fe990dd

docker/.htaccess → .docker/.htaccess


docker/alpine/nginx.conf → .docker/nginx.conf


docker/alpine/php-fpm.conf → .docker/php-fpm.conf


docker/alpine/services.d/.s6-svscan/finish → .docker/services.d/.s6-svscan/finish


docker/alpine/services.d/nginx/run → .docker/services.d/nginx/run


docker/alpine/services.d/php-fpm/run → .docker/services.d/php-fpm/run


+ 51 - 0
.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

+ 3 - 1
.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

+ 16 - 9
docker/alpine/Dockerfile.master

@@ -1,13 +1,20 @@
 # Stage 1:
-# - Get Shaarli sources
+# - 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
-RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \
-    && mv Shaarli-master shaarli \
-    && cd shaarli \
+COPY --from=docs /usr/src/app/shaarli /app/shaarli
+RUN cd shaarli \
     && composer --prefer-dist --no-dev install
 
-# Stage 2:
+# 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 \

+ 4 - 4
docker/alpine/Dockerfile.armhf.master

@@ -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 \

+ 0 - 49
docker/alpine/Dockerfile.armhf.latest

@@ -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 []

+ 0 - 54
docker/alpine/Dockerfile.latest

@@ -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 []

+ 0 - 10
docker/alpine/IMAGE.md

@@ -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