aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Dockerfile.armhf47
1 files changed, 36 insertions, 11 deletions
diff --git a/Dockerfile.armhf b/Dockerfile.armhf
index 5dcc34aa..1185e2df 100644
--- a/Dockerfile.armhf
+++ b/Dockerfile.armhf
@@ -1,9 +1,38 @@
1FROM lsiobase/alpine.armhf:3.6 1# Stage 1:
2# - Copy Shaarli sources
3# - Build documentation
4FROM arm32v6/alpine:3.8 as docs
5ADD . /usr/src/app/shaarli
6RUN apk --update --no-cache add py2-pip \
7 && cd /usr/src/app/shaarli \
8 && pip install --no-cache-dir mkdocs \
9 && mkdocs build --clean
10
11# Stage 2:
12# - Resolve PHP dependencies with Composer
13FROM arm32v6/alpine:3.8 as composer
14COPY --from=docs /usr/src/app/shaarli /app/shaarli
15RUN apk --update --no-cache add php7-mbstring composer \
16 && cd /app/shaarli \
17 && composer --prefer-dist --no-dev install
18
19# Stage 3:
20# - Frontend dependencies
21FROM arm32v6/alpine:3.8 as node
22COPY --from=composer /app/shaarli /shaarli
23RUN apk --update --no-cache add yarn nodejs-current python2 build-base \
24 && cd /shaarli \
25 && yarn install \
26 && yarn run build \
27 && rm -rf node_modules
28
29# Stage 4:
30# - Shaarli image
31FROM arm32v6/alpine:3.8
2LABEL maintainer="Shaarli Community" 32LABEL maintainer="Shaarli Community"
3 33
4RUN apk --update --no-cache add \ 34RUN apk --update --no-cache add \
5 ca-certificates \ 35 ca-certificates \
6 curl \
7 nginx \ 36 nginx \
8 php7 \ 37 php7 \
9 php7-ctype \ 38 php7-ctype \
@@ -15,7 +44,6 @@ RUN apk --update --no-cache add \
15 php7-json \ 44 php7-json \
16 php7-mbstring \ 45 php7-mbstring \
17 php7-openssl \ 46 php7-openssl \
18 php7-phar \
19 php7-session \ 47 php7-session \
20 php7-xml \ 48 php7-xml \
21 php7-zlib \ 49 php7-zlib \
@@ -25,22 +53,19 @@ COPY .docker/nginx.conf /etc/nginx/nginx.conf
25COPY .docker/php-fpm.conf /etc/php7/php-fpm.conf 53COPY .docker/php-fpm.conf /etc/php7/php-fpm.conf
26COPY .docker/services.d /etc/services.d 54COPY .docker/services.d /etc/services.d
27 55
28RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \ 56RUN rm -rf /etc/php7/php-fpm.d/www.conf \
29 && rm -rf /etc/php7/php-fpm.d/www.conf \
30 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \ 57 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \
31 && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini 58 && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini
32 59
33 60
34WORKDIR /var/www 61WORKDIR /var/www
35RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \ 62COPY --from=node /shaarli /var/www/shaarli
36 && mv Shaarli-master shaarli \ 63
37 && cd shaarli \ 64RUN chown -R nginx:nginx . \
38 && composer --prefer-dist --no-dev install \
39 && rm -rf ~/.composer \
40 && chown -R nginx:nginx . \
41 && ln -sf /dev/stdout /var/log/nginx/shaarli.access.log \ 65 && ln -sf /dev/stdout /var/log/nginx/shaarli.access.log \
42 && ln -sf /dev/stderr /var/log/nginx/shaarli.error.log 66 && ln -sf /dev/stderr /var/log/nginx/shaarli.error.log
43 67
68VOLUME /var/www/shaarli/cache
44VOLUME /var/www/shaarli/data 69VOLUME /var/www/shaarli/data
45 70
46EXPOSE 80 71EXPOSE 80