 # rucio version used as base for the final image
ARG RUCIO_TAG=release-40.1.1

FROM harbor.cta-observatory.org/proxy_cache/python:3.12 AS builder

COPY pyproject.toml MANIFEST.in /tmp/bdms/
COPY .git /tmp/bdms/.git/
COPY src /tmp/bdms/src/

RUN python -m pip install build \
  && python -m build /tmp/bdms --wheel -o /tmp/dist

FROM harbor.cta-observatory.org/proxy_cache/rucio/rucio-clients:${RUCIO_TAG} AS rucio

# almalinux:9 base avoids duplicate installations
FROM harbor.cta-observatory.org/proxy_cache/almalinux:9

ARG USERID=1000
ARG GROUPID=1000

RUN groupadd --gid ${GROUPID} user \
  && adduser --uid ${USERID} --gid user -s /bin/bash -d /home/user user

COPY --from=rucio /opt/rucio/ /opt/rucio/

ENV BDMS_CONDA=/home/user/conda
ENV MAMBA_ROOT_PREFIX=${BDMS_CONDA}
ENV PATH=${BDMS_CONDA}/bin:${PATH}

RUN dnf install -y --setopt=install_weak_deps=False bzip2 git procps bind-utils \
  && curl -Ls --proto '=https' https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj -C /usr/local/bin --strip-components=1 bin/micromamba \
  && dnf remove -y bzip2 \
  && micromamba create -y -p ${BDMS_CONDA} python=3.12 rucio-clients voms python-gfal2 gfal2-util \
  && dnf clean all

COPY --from=builder /tmp/dist/ /tmp/dist/
RUN pip install --no-cache-dir /tmp/dist/ctao_bdms* \
  && rm -rf /tmp/dist

USER user

ENV RUCIO_POLICY_PACKAGE=bdms_rucio_policy
