# python:3.8-slim
FROM python@sha256:f8a12edddd4fb9c9fd38cd7147c5861a596dee5a4852b6bded3d1d6e2c8987bd AS package_versions

ARG requirements_src

ARG apt_requirements=/tmp/${requirements_src}.txt
ARG get_versions=/tmp/get_versions.sh
ARG requirements_lock=/tmp/${requirements_src}.lock

# NOTE: This dockerfile is intended to be built manually for use locally to
#       update the requirements lock file.
COPY ./${requirements_src}.txt "${apt_requirements}"
COPY ./get_versions.sh "${get_versions}"

RUN set -ex \
    && chmod +x "${get_versions}" \
    && apt-get update \
    && "${get_versions}" "${apt_requirements}" "${requirements_lock}"


FROM python:3.8-slim

ARG requirements_src
ARG requirements_lock_src=/tmp/${requirements_src}.lock
ARG requirements_lock_dest=/media/${requirements_src}.lock

COPY --from=package_versions "${requirements_lock}" "${requirements_lock}"

ENV REQ_SRC=${requirements_lock_src}
ENV REQ_DEST=${requirements_lock_dest}

VOLUME /media

# copy the generated lock file to the volume
CMD ["sh", "-c", "cp ${REQ_SRC} ${REQ_DEST}"]
