diff --git a/Dockerfile b/Dockerfile index 7b0464a21..befa90c26 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,54 +1,41 @@ -FROM alpine:latest - +FROM alpine:3.7 +WORKDIR /usr/src/paperless +COPY requirements.txt /usr/src/paperless/ +# Copy application +COPY src/ /usr/src/paperless/src/ +COPY data/ /usr/src/paperless/data/ +COPY media/ /usr/src/paperless/media/ +# Set export directory +ENV PAPERLESS_EXPORT_DIR /export +# Set consumption directory +ENV PAPERLESS_CONSUMPTION_DIR /consume +COPY scripts/docker-entrypoint.sh /sbin/docker-entrypoint.sh # Install dependencies RUN apk --no-cache --update add \ python3 gnupg libmagic bash \ sudo tesseract-ocr imagemagick ghostscript unpaper && \ apk --no-cache add --virtual .build-dependencies \ - python3-dev gcc musl-dev zlib-dev jpeg-dev - + python3-dev gcc musl-dev zlib-dev jpeg-dev && \ ## Install python dependencies -RUN python3 -m ensurepip && \ + python3 -m ensurepip && \ rm -r /usr/lib/python*/ensurepip && \ - mkdir -p /usr/src/paperless -WORKDIR /usr/src/paperless -COPY requirements.txt /usr/src/paperless/ -RUN pip3 install --no-cache-dir -r requirements.txt - -# Copy application -RUN mkdir -p /usr/src/paperless/src -RUN mkdir -p /usr/src/paperless/data -RUN mkdir -p /usr/src/paperless/media -COPY src/ /usr/src/paperless/src/ -COPY data/ /usr/src/paperless/data/ -COPY media/ /usr/src/paperless/media/ - -# Set consumption directory -ENV PAPERLESS_CONSUMPTION_DIR /consume -RUN mkdir -p $PAPERLESS_CONSUMPTION_DIR - + mkdir -p /usr/src/paperless && \ + pip3 install --no-cache-dir -r requirements.txt && \ +# Remove build dependencies + apk del .build-dependencies && \ +# Create the consumption directory + mkdir -p $PAPERLESS_CONSUMPTION_DIR && \ # Migrate database -WORKDIR /usr/src/paperless/src -RUN ./manage.py migrate - + ./src/manage.py migrate && \ # Create user -RUN addgroup -g 1000 paperless \ - && adduser -D -u 1000 -G paperless -h /usr/src/paperless paperless \ - && chown -Rh paperless:paperless /usr/src/paperless - -# Set export directory -ENV PAPERLESS_EXPORT_DIR /export -RUN mkdir -p $PAPERLESS_EXPORT_DIR - + addgroup -g 1000 paperless && \ + adduser -D -u 1000 -G paperless -h /usr/src/paperless paperless && \ + chown -Rh paperless:paperless /usr/src/paperless && \ + mkdir -p $PAPERLESS_EXPORT_DIR && \ # Setup entrypoint -COPY scripts/docker-entrypoint.sh /sbin/docker-entrypoint.sh -RUN chmod 755 /sbin/docker-entrypoint.sh - + chmod 755 /sbin/docker-entrypoint.sh +WORKDIR /usr/src/paperless/src # Mount volumes VOLUME ["/usr/src/paperless/data", "/usr/src/paperless/media", "/consume", "/export"] - ENTRYPOINT ["/sbin/docker-entrypoint.sh"] - -# Remove build dependencies -RUN apk del .build-dependencies CMD ["--help"]