Skip to content

Commit b1d9c22

Browse files
authored
feat: change dockerfile to support multi-platform build (#46)
1 parent 5f7ada5 commit b1d9c22

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

docker/Dockerfile

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
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

412
ENV STATUS_PROVISIONER_HOME=/opt/provisioner \
5-
PYTHONUNBUFFERED=1
13+
PYTHONUNBUFFERED=1 \
14+
USER_UID=1000 \
15+
USER_GID=1000
616

717
COPY docker/requirements.txt ${STATUS_PROVISIONER_HOME}/requirements.txt
818
COPY docker/docker-entrypoint.sh /
919
COPY 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"
1322
RUN 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

2130
RUN set -x \
@@ -33,14 +42,15 @@ RUN set -x \
3342

3443
RUN 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

4352
WORKDIR ${STATUS_PROVISIONER_HOME}
4453

45-
USER 1000:0
54+
USER ${USER_UID}:0
55+
4656
ENTRYPOINT ["/docker-entrypoint.sh"]

0 commit comments

Comments
 (0)