FROM python:3-alpine as docs
ADD . /usr/src/app/shaarli
RUN cd /usr/src/app/shaarli \
+ && apk add --no-cache gcc musl-dev \
&& pip install --no-cache-dir mkdocs \
- && mkdocs build
+ && mkdocs build --clean
# Stage 2:
# - Resolve PHP dependencies with Composer
&& composer --prefer-dist --no-dev install
# Stage 3:
+# - Frontend dependencies
+FROM node:12-alpine as node
+COPY --from=composer /app/shaarli shaarli
+RUN cd shaarli \
+ && yarn install \
+ && yarn run build \
+ && rm -rf node_modules
+
+# Stage 4:
# - Shaarli image
-FROM alpine:3.6
+FROM alpine:3.8
LABEL maintainer="Shaarli Community"
RUN apk --update --no-cache add \
php7-openssl \
php7-session \
php7-xml \
+ php7-simplexml \
php7-zlib \
s6
WORKDIR /var/www
-COPY --from=composer /app/shaarli shaarli
+COPY --from=node /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/cache
VOLUME /var/www/shaarli/data
EXPOSE 80