FROM python:3.11-alpine

# https://docs.docker.com/engine/reference/builder/

# For debugging
# docker run --rm -v "$(pwd)":/files:ro extract_otp_secrets_only_txt
# docker build . -t extract_otp_secrets_only_txt -f Dockerfile_only_txt --pull --build-arg RUN_TESTS=false
# docker run --entrypoint /bin/sh -it --rm -v "$(pwd)":/files:ro extract_otp_secrets_only_txt
# docker run --entrypoint /extract/run_pytest.sh --rm -v "$(pwd)":/files:ro extract_otp_secrets_only_txt tests/extract_otp_secrets_test.py -k "not qreader" --relaxed -vvv -s

WORKDIR /extract

COPY . .

ARG RUN_TESTS=true

RUN apk add --no-cache \
        jpeg \
        zlib \
    && echo "Arch: $(apk --print-arch)" \
    && if [[ "$(apk --print-arch)" == "aarch64" ]]; then apk add --no-cache --virtual .build-deps \
        gcc \
        jpeg-dev \
        libc-dev \
        py3-setuptools \
        python3-dev \
        zlib-dev \
    ; fi \
    && pip install --no-cache-dir -U \
        colorama \
        Pillow \
        protobuf \
        qrcode \
    && if [[ "$(apk --print-arch)" == "aarch64" ]]; then apk del .build-deps; fi \
    && if [[ "$RUN_TESTS" == "true" ]]; then /extract/run_pytest.sh tests/extract_otp_secrets_test.py -k "not qreader" --relaxed; else echo "Not running tests..."; fi

WORKDIR /files

ENTRYPOINT ["python", "/extract/src/extract_otp_secrets.py"]

LABEL org.opencontainers.image.source https://github.com/scito/extract_otp_secrets
LABEL org.opencontainers.image.license GPL-3.0+
