1FROM alpine:3.8
2
3LABEL maintainer="The Paperless Project https://github.com/danielquinn/paperless" \
4      contributors="Guy Addadi <addadi@gmail.com>, Pit Kleyersburg <pitkley@googlemail.com>, \
5        Sven Fischer <git-dev@linux4tw.de>"
6
7# Copy Pipfiles file and init script
8COPY Pipfile* /usr/src/paperless/
9COPY scripts/docker-entrypoint.sh /sbin/docker-entrypoint.sh
10
11# Set export and consumption directories
12ENV PAPERLESS_EXPORT_DIR=/export \
13    PAPERLESS_CONSUMPTION_DIR=/consume
14
15
16RUN apk update --no-cache && apk add python3 gnupg libmagic libpq bash shadow curl \
17        sudo poppler tesseract-ocr imagemagick ghostscript unpaper optipng && \
18    apk add --virtual .build-dependencies \
19        python3-dev poppler-dev postgresql-dev gcc g++ musl-dev zlib-dev jpeg-dev && \
20# Install python dependencies
21    python3 -m ensurepip && \
22    rm -r /usr/lib/python*/ensurepip && \
23    cd /usr/src/paperless && \
24    pip3 install --upgrade pip pipenv && \
25    pipenv install --system --deploy && \
26# Remove build dependencies
27    apk del .build-dependencies && \
28# Create the consumption directory
29    mkdir -p $PAPERLESS_CONSUMPTION_DIR && \
30# Create user
31    addgroup -g 1000 paperless && \
32    adduser -D -u 1000 -G paperless -h /usr/src/paperless paperless && \
33    chown -Rh paperless:paperless /usr/src/paperless && \
34    mkdir -p $PAPERLESS_EXPORT_DIR && \
35# Setup entrypoint
36    chmod 755 /sbin/docker-entrypoint.sh
37
38WORKDIR /usr/src/paperless/src
39# Mount volumes and set Entrypoint
40VOLUME ["/usr/src/paperless/data", "/usr/src/paperless/media", "/consume", "/export"]
41ENTRYPOINT ["/sbin/docker-entrypoint.sh"]
42CMD ["--help"]
43
44# Copy application
45COPY src/ /usr/src/paperless/src/
46COPY data/ /usr/src/paperless/data/
47COPY media/ /usr/src/paperless/media/
48
49