|
1 | | -FROM alpine:3.22.1 AS builder |
2 | | -RUN apk update \ |
3 | | - && apk add curl |
4 | | -RUN export ARCH=$([[ "$(uname -m)" == "aarch64" ]] && echo "arm64" || echo "amd64") \ |
5 | | - && mkdir -p /tmp/kubectl-versions && cd /tmp/kubectl-versions \ |
6 | | - && curl -o kubectl1.34 -L https://storage.googleapis.com/kubernetes-release/release/v1.34.1/bin/linux/${ARCH}/kubectl \ |
7 | | - && curl -o kubectl1.33 -L https://storage.googleapis.com/kubernetes-release/release/v1.33.5/bin/linux/${ARCH}/kubectl \ |
8 | | - && curl -o kubectl1.32 -L https://storage.googleapis.com/kubernetes-release/release/v1.32.9/bin/linux/${ARCH}/kubectl |
9 | | - |
10 | | -FROM debian:bookworm-20250908-slim AS prod |
11 | | -RUN apt-get update -y |
12 | | -# install busybox by building source until it's unavailable by apt-get for v1.36.1 ad no need to link [[ |
13 | | -RUN apt-get install --no-install-recommends wget build-essential -y && \ |
14 | | - wget --no-check-certificate https://busybox.net/downloads/busybox-1.36.1.tar.bz2 && \ |
15 | | - tar -xvjf busybox-1.36.1.tar.bz2 && \ |
16 | | - cd busybox-1.36.1 && \ |
17 | | - make defconfig && \ |
18 | | - make && \ |
19 | | - make CONFIG_PREFIX="/" install |
| 1 | +ARG DEBIAN_VERSION=bookworm-20251103-slim |
| 2 | + |
| 3 | + |
| 4 | +FROM debian:${DEBIAN_VERSION} AS builder |
| 5 | +ARG TARGETPLATFORM |
| 6 | +RUN apt-get update && apt-get install -y build-essential |
| 7 | + |
| 8 | +ARG BUSYBOX_VERSION=1.36.1 |
| 9 | +ADD https://busybox.net/downloads/busybox-${BUSYBOX_VERSION}.tar.bz2 /busybox-${BUSYBOX_VERSION}.tar.bz2 |
| 10 | +ADD https://busybox.net/downloads/busybox-${BUSYBOX_VERSION}.tar.bz2.sha256 /busybox-${BUSYBOX_VERSION}.tar.bz2.sha256 |
| 11 | +RUN echo "$(cat busybox-${BUSYBOX_VERSION}.tar.bz2.sha256) busybox-${BUSYBOX_VERSION}.tar.bz2" | sha256sum --check |
| 12 | +RUN tar -xvjf busybox-${BUSYBOX_VERSION}.tar.bz2 \ |
| 13 | + && cd busybox-${BUSYBOX_VERSION} \ |
| 14 | + && make defconfig \ |
| 15 | + && make \ |
| 16 | + && make CONFIG_PREFIX="/" install |
| 17 | + |
| 18 | +ADD https://dl.k8s.io/release/v1.34.1/bin/${TARGETPLATFORM}/kubectl /kubectl/kubectl1.34 |
| 19 | +ADD https://dl.k8s.io/release/v1.34.1/bin/${TARGETPLATFORM}/kubectl.sha256 /kubectl1.34.sha256 |
| 20 | +RUN echo "$(cat kubectl1.34.sha256) /kubectl/kubectl1.34" | sha256sum --check |
| 21 | + |
| 22 | +ADD https://dl.k8s.io/release/v1.33.5/bin/${TARGETPLATFORM}/kubectl /kubectl/kubectl1.33 |
| 23 | +ADD https://dl.k8s.io/release/v1.33.5/bin/${TARGETPLATFORM}/kubectl.sha256 /kubectl1.33.sha256 |
| 24 | +RUN echo "$(cat kubectl1.33.sha256) /kubectl/kubectl1.33" | sha256sum --check |
| 25 | + |
| 26 | +ADD https://dl.k8s.io/release/v1.32.9/bin/${TARGETPLATFORM}/kubectl /kubectl/kubectl1.32 |
| 27 | +ADD https://dl.k8s.io/release/v1.32.9/bin/${TARGETPLATFORM}/kubectl.sha256 /kubectl1.32.sha256 |
| 28 | +RUN echo "$(cat kubectl1.32.sha256) /kubectl/kubectl1.32" | sha256sum --check |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +FROM debian:${DEBIAN_VERSION} AS prod |
20 | 33 | RUN adduser --gecos "" --disabled-password --home /home/cfu --shell /bin/bash cfu |
21 | | -#copy all versions of kubectl to switch between them later. |
22 | | -COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/* /usr/local/bin/ |
23 | | -COPY --chown=cfu --chmod=775 --from=builder /tmp/kubectl-versions/kubectl1.34 /usr/local/bin/kubectl |
| 34 | + |
| 35 | +COPY --chown=cfu --chmod=775 cf-deploy-kubernetes.sh /cf-deploy-kubernetes |
| 36 | +COPY --chown=cfu --chmod=775 template.sh /template.sh |
| 37 | + |
| 38 | +COPY --chown=cfu --chmod=775 --from=builder /usr/bin/busybox /usr/bin/busybox |
| 39 | +RUN busybox --install |
| 40 | + |
| 41 | +COPY --chown=cfu --chmod=775 --from=builder /kubectl/* /usr/local/bin/ |
| 42 | +RUN ln -s /usr/local/bin/kubectl1.34 /usr/local/bin/kubectl |
24 | 43 |
|
25 | 44 | WORKDIR / |
26 | | -ADD --chown=cfu --chmod=775 cf-deploy-kubernetes.sh /cf-deploy-kubernetes |
27 | | -ADD --chown=cfu --chmod=775 template.sh /template.sh |
28 | 45 | USER cfu |
29 | 46 | CMD ["bash"] |
0 commit comments