diff options
Diffstat (limited to 'Dockerfile')
-rw-r--r-- | Dockerfile | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..93146c52 --- /dev/null +++ b/Dockerfile | |||
@@ -0,0 +1,61 @@ | |||
1 | # Stage 1: | ||
2 | # - Copy Shaarli sources | ||
3 | # - Build documentation | ||
4 | FROM python:3-alpine as docs | ||
5 | ADD . /usr/src/app/shaarli | ||
6 | RUN cd /usr/src/app/shaarli \ | ||
7 | && pip install --no-cache-dir mkdocs \ | ||
8 | && mkdocs build | ||
9 | |||
10 | # Stage 2: | ||
11 | # - Resolve PHP dependencies with Composer | ||
12 | FROM composer:latest as composer | ||
13 | COPY --from=docs /usr/src/app/shaarli /app/shaarli | ||
14 | RUN cd shaarli \ | ||
15 | && composer --prefer-dist --no-dev install | ||
16 | |||
17 | # Stage 3: | ||
18 | # - Shaarli image | ||
19 | FROM alpine:3.6 | ||
20 | LABEL maintainer="Shaarli Community" | ||
21 | |||
22 | RUN apk --update --no-cache add \ | ||
23 | ca-certificates \ | ||
24 | nginx \ | ||
25 | php7 \ | ||
26 | php7-ctype \ | ||
27 | php7-curl \ | ||
28 | php7-fpm \ | ||
29 | php7-gd \ | ||
30 | php7-iconv \ | ||
31 | php7-intl \ | ||
32 | php7-json \ | ||
33 | php7-mbstring \ | ||
34 | php7-openssl \ | ||
35 | php7-session \ | ||
36 | php7-xml \ | ||
37 | php7-zlib \ | ||
38 | s6 | ||
39 | |||
40 | COPY .docker/nginx.conf /etc/nginx/nginx.conf | ||
41 | COPY .docker/php-fpm.conf /etc/php7/php-fpm.conf | ||
42 | COPY .docker/services.d /etc/services.d | ||
43 | |||
44 | RUN rm -rf /etc/php7/php-fpm.d/www.conf \ | ||
45 | && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \ | ||
46 | && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini | ||
47 | |||
48 | |||
49 | WORKDIR /var/www | ||
50 | COPY --from=composer /app/shaarli shaarli | ||
51 | |||
52 | RUN chown -R nginx:nginx . \ | ||
53 | && ln -sf /dev/stdout /var/log/nginx/shaarli.access.log \ | ||
54 | && ln -sf /dev/stderr /var/log/nginx/shaarli.error.log | ||
55 | |||
56 | VOLUME /var/www/shaarli/data | ||
57 | |||
58 | EXPOSE 80 | ||
59 | |||
60 | ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"] | ||
61 | CMD [] | ||