FROM alpine:3.12
WORKDIR /opt/app

RUN \
    apk --no-cache add \
        python3 \
        ffmpeg \
        py3-pip \
        # from requirements.txt:
        py3-yaml \
        py3-psycopg2 \
        py3-sqlalchemy \
        py3-certifi \
        py3-numpy \
        py3-pillow \
        py3-pynacl \
        py3-tz \
        py3-pyrfc3339 \
        # for testing
        py3-pytest \
        py3-pytest-cov \
        postgresql \
    && \
    pip3 install --no-cache-dir --disable-pip-version-check \
        alembic \
        "coloredlogs==5.0" \
        youtube-dl \
        # for testing
        pytest-pgsql \
        freezegun \
    && apk --no-cache del py3-pip

ARG PUID=1000
ARG PGID=1000
RUN \
    # Set users
    mkdir -p /opt/app /data && \
    addgroup -g ${PGID} app && \
    adduser -SDH -h /opt/app -g '' -G app -u ${PUID} app && \
    chown -R app:app /opt/app /data
USER app

ENV POSTGRES_HOST=x \
    POSTGRES_USER=x \
    POSTGRES_PASSWORD=x

COPY --chown=app:app ./ /opt/app/

ENTRYPOINT ["pytest", "--tb=short"]
CMD ["szurubooru/"]