11# hadolint global ignore=DL3013,DL3018
2- FROM python:3.13.7-alpine3.22
2+ FROM --platform=$BUILDPLATFORM python:3.13.7-alpine3.22
3+
4+ # For multi-platform build
5+ ARG BUILDPLATFORM
6+ ARG TARGETOS
7+ ARG TARGETARCH
8+
9+ # kubectl version
10+ ARG KUBECTL_VERSION="v1.34.0"
311
412ENV STATUS_PROVISIONER_HOME=/opt/provisioner \
5- PYTHONUNBUFFERED=1
13+ PYTHONUNBUFFERED=1 \
14+ USER_UID=1000 \
15+ USER_GID=1000
616
717COPY docker/requirements.txt ${STATUS_PROVISIONER_HOME}/requirements.txt
818COPY docker/docker-entrypoint.sh /
919COPY docker/*.py ${STATUS_PROVISIONER_HOME}/
1020
1121# Install kubectl - it is required for vault-service-status-provisioner-cleanup job
12- ARG KUBECTL_VERSION="v1.33.4"
1322RUN set -x \
1423 && wget \
1524 --no-check-certificate \
1625 -nv \
1726 -O "/usr/local/bin/kubectl" \
18- "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64 /kubectl" \
27+ "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/${TARGETOS}/${TARGETARCH} /kubectl" \
1928 && chmod +x "/usr/local/bin/kubectl"
2029
2130RUN set -x \
@@ -33,14 +42,15 @@ RUN set -x \
3342
3443RUN set -x \
3544 # Add unprivileged user
36- && addgroup -S -g 1000 provisioner \
37- && adduser -s /bin/bash -S -G provisioner -u 1000 provisioner \
45+ && addgroup -S -g ${USER_GID} provisioner \
46+ && adduser -s /bin/bash -S -G provisioner -u ${USER_UID} provisioner \
3847 && addgroup provisioner root \
3948 # Set permissions
4049 && chmod +x /docker-entrypoint.sh \
4150 && chgrp 0 /docker-entrypoint.sh
4251
4352WORKDIR ${STATUS_PROVISIONER_HOME}
4453
45- USER 1000:0
54+ USER ${USER_UID}:0
55+
4656ENTRYPOINT ["/docker-entrypoint.sh" ]
0 commit comments