Skip to content

Commit

Permalink
docker: introduce multi-stage image build (master, latest)
Browse files Browse the repository at this point in the history
  • Loading branch information
virtualtam committed Feb 14, 2018
1 parent 8b48e36 commit 3c51135
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 23 deletions.
26 changes: 14 additions & 12 deletions docker/alpine/Dockerfile.latest
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
# 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
MAINTAINER Shaarli Community
LABEL maintainer="Shaarli Community"

RUN apk --update --no-cache add \
ca-certificates \
curl \
nginx \
php7 \
php7-ctype \
Expand All @@ -15,7 +25,6 @@ RUN apk --update --no-cache add \
php7-json \
php7-mbstring \
php7-openssl \
php7-phar \
php7-session \
php7-xml \
php7-zlib \
Expand All @@ -25,22 +34,15 @@ 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 \
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
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 .
COPY --from=composer /app/shaarli shaarli

VOLUME /var/www/shaarli/data

EXPOSE 80

ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"]
Expand Down
26 changes: 15 additions & 11 deletions docker/alpine/Dockerfile.master
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
# 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

# Stage 2:
# - Shaarli image
FROM alpine:3.6
MAINTAINER Shaarli Community
LABEL maintainer="Shaarli Community"

RUN apk --update --no-cache add \
ca-certificates \
curl \
nginx \
php7 \
php7-ctype \
Expand All @@ -15,7 +25,6 @@ RUN apk --update --no-cache add \
php7-json \
php7-mbstring \
php7-openssl \
php7-phar \
php7-session \
php7-xml \
php7-zlib \
Expand All @@ -25,20 +34,15 @@ 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 \
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
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 \
&& rm -rf ~/.composer \
&& chown -R nginx:nginx .
COPY --from=composer /app/shaarli shaarli

RUN chown -R nginx:nginx .
VOLUME /var/www/shaarli/data

EXPOSE 80
Expand Down

0 comments on commit 3c51135

Please sign in to comment.