ARG PYTHON_VERSION=3.9.21
ARG KUBECTL_VERSION=1.34.9

FROM registry.k8s.io/kubectl:v${KUBECTL_VERSION} AS kubectl

FROM python:${PYTHON_VERSION}-slim-bookworm

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    KUBECONFIG=/app/in-cluster-kubeconfig.yaml

RUN apt-get update \
    && apt-get install --yes --no-install-recommends \
        bash \
        ca-certificates \
        jq \
    && rm -rf /var/lib/apt/lists/*

COPY --from=kubectl /bin/kubectl /usr/local/bin/kubectl

WORKDIR /app

COPY requirements.txt ./

RUN python -m pip install --no-cache-dir --requirement requirements.txt

COPY in-cluster-kubeconfig.yaml ./

COPY run_packed_backup_export.py \
     packed_backup_notification.py \
     packed_backup_workflow_spec.py \
     generate-pack-backup-offline.sh \
     list-completed-pack-backup-offline-tasks.sh \
     generate_dumpling_packed_backup_export.py \
     dumpling_packed_backup_init.py \
     generate_packed_backup_watermark.py \
     packed_backup_watermark.py \
     ./

# To fit my.cnf from tidbcloud
RUN ln -s /etc/ssl/certs/ca-certificates.crt /etc/ssl/cert.pem

ENTRYPOINT ["python", "/app/run_packed_backup_export.py"]
