Skip to content

Commit e4fa33e

Browse files
committed
Update dockerfile
Signed-off-by: David Kwon <[email protected]>
1 parent ee9c996 commit e4fa33e

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

universal/ubi9/Dockerfile

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
# updateBaseImages.sh can't operate on SHA-based tags as they're not date-based or semver-sequential, and therefore cannot be ordered
44
FROM quay.io/devfile/base-developer-image:ubi9-latest
5+
6+
ARG TARGETARCH
57
LABEL maintainer="Red Hat, Inc."
68

79
LABEL com.redhat.component="devfile-universal-container"
@@ -21,7 +23,7 @@ USER 0
2123

2224
# $PROFILE_EXT contains all additions made to the bash environment
2325
ENV PROFILE_EXT=/etc/profile.d/udi_environment.sh
24-
RUN touch ${PROFILE_EXT} & chown 10001 ${PROFILE_EXT}
26+
RUN touch ${PROFILE_EXT} && chown 10001 ${PROFILE_EXT}
2527

2628
USER 10001
2729

@@ -57,7 +59,12 @@ ENV JAVA_HOME_21=/home/tooling/.sdkman/candidates/java/21.0.5-tem
5759
ENV SDKMAN_CANDIDATES_API="https://api.sdkman.io/2"
5860
ENV SDKMAN_CANDIDATES_DIR="/home/tooling/.sdkman/candidates"
5961
ENV SDKMAN_DIR="/home/tooling/.sdkman"
60-
ENV SDKMAN_PLATFORM="linuxx64"
62+
RUN if [ "$TARGETARCH" = "arm64" ]; then \
63+
export SDKMAN_PLATFORM="linuxarm64"; \
64+
else \
65+
export SDKMAN_PLATFORM="linuxx64"; \
66+
fi
67+
ENV SDKMAN_PLATFORM=${SDKMAN_PLATFORM}
6168
ENV SDKMAN_VERSION="5.18.2"
6269

6370
ENV GRADLE_HOME="/home/tooling/.sdkman/candidates/gradle/current"
@@ -174,7 +181,7 @@ RUN curl --proto '=https' --tlsv1.2 -sSfo rustup https://sh.rustup.rs && \
174181

175182
# camel-k
176183
ENV KAMEL_VERSION 2.2.0
177-
RUN curl -L https://github.com/apache/camel-k/releases/download/v${KAMEL_VERSION}/camel-k-client-${KAMEL_VERSION}-linux-amd64.tar.gz | tar -C /usr/local/bin -xz --no-same-owner \
184+
RUN curl -L https://github.com/apache/camel-k/releases/download/v${KAMEL_VERSION}/camel-k-client-${KAMEL_VERSION}-linux-${TARGETARCH}.tar.gz | tar -C /usr/local/bin -xz --no-same-owner \
178185
&& chmod +x /usr/local/bin/kamel
179186

180187
# Config directories
@@ -192,12 +199,16 @@ RUN mkdir -p /home/tooling/.m2 && \
192199

193200
# oc client
194201
ENV OC_VERSION=4.15
195-
RUN curl -L https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable-${OC_VERSION}/openshift-client-linux.tar.gz | tar -C /usr/local/bin -xz --no-same-owner \
196-
&& chmod +x /usr/local/bin/oc
202+
RUN if [ "$TARGETARCH" = "arm64" ]; then \
203+
curl -L https://mirror.openshift.com/pub/openshift-v4/arm64/clients/ocp/stable-${OC_VERSION}/openshift-client-linux.tar.gz; \
204+
else \
205+
curl -L https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable-${OC_VERSION}/openshift-client-linux.tar.gz; \
206+
fi | tar -C /usr/local/bin -xz --no-same-owner && \
207+
chmod +x /usr/local/bin/oc
197208

198209
# OS Pipelines CLI (tkn)
199210
ENV TKN_VERSION=1.14.0
200-
RUN curl -L https://mirror.openshift.com/pub/openshift-v4/clients/pipelines/${TKN_VERSION}/tkn-linux-amd64.tar.gz | tar -C /usr/local/bin -xz --no-same-owner \
211+
RUN curl -L https://mirror.openshift.com/pub/openshift-v4/clients/pipelines/${TKN_VERSION}/tkn-linux-${TARGETARCH}.tar.gz | tar -C /usr/local/bin -xz --no-same-owner \
201212
&& chmod +x /usr/local/bin/tkn /usr/local/bin/opc /usr/local/bin/tkn-pac
202213

203214
RUN echo 'alias docker=podman' >> ${PROFILE_EXT}
@@ -231,7 +242,11 @@ set -euf -o pipefail
231242
TEMP_DIR="$(mktemp -d)"
232243
cd "${TEMP_DIR}"
233244
SHELL_CHECK_VERSION="0.8.0"
234-
SHELL_CHECK_ARCH="x86_64"
245+
if [ "$TARGETARCH" = "arm64" ]; then
246+
SHELL_CHECK_ARCH="aarch64"
247+
else
248+
SHELL_CHECK_ARCH="x86_64"
249+
fi
235250
SHELL_CHECK_TGZ="shellcheck-v${SHELL_CHECK_VERSION}.linux.${SHELL_CHECK_ARCH}.tar.xz"
236251
SHELL_CHECK_TGZ_URL="https://github.com/koalaman/shellcheck/releases/download/v${SHELL_CHECK_VERSION}/${SHELL_CHECK_TGZ}"
237252
curl -sSLO "${SHELL_CHECK_TGZ_URL}"
@@ -247,7 +262,7 @@ set -euf -o pipefail
247262
TEMP_DIR="$(mktemp -d)"
248263
cd "${TEMP_DIR}"
249264
KREW_VERSION="0.4.2"
250-
KREW_ARCH="linux_amd64"
265+
KREW_ARCH="linux_${TARGETARCH}"
251266
KREW_TGZ="krew-${KREW_ARCH}.tar.gz"
252267
KREW_TGZ_URL="https://github.com/kubernetes-sigs/krew/releases/download/v${KREW_VERSION}/${KREW_TGZ}"
253268
curl -sSLO "${KREW_TGZ_URL}"
@@ -276,7 +291,7 @@ set -euf -o pipefail
276291
TEMP_DIR="$(mktemp -d)"
277292
cd "${TEMP_DIR}"
278293
HELM_VERSION="3.14.3"
279-
HELM_ARCH="linux-amd64"
294+
HELM_ARCH="linux-${TARGETARCH}"
280295
HELM_TGZ="helm-v${HELM_VERSION}-${HELM_ARCH}.tar.gz"
281296
HELM_TGZ_URL="https://get.helm.sh/${HELM_TGZ}"
282297
curl -sSLO "${HELM_TGZ_URL}"
@@ -294,7 +309,7 @@ set -euf -o pipefail
294309
TEMP_DIR="$(mktemp -d)"
295310
cd "${TEMP_DIR}"
296311
KUSTOMIZE_VERSION="5.3.0"
297-
KUSTOMIZE_ARCH="linux_amd64"
312+
KUSTOMIZE_ARCH="linux_${TARGETARCH}"
298313
KUSTOMIZE_TGZ="kustomize_v${KUSTOMIZE_VERSION}_${KUSTOMIZE_ARCH}.tar.gz"
299314
KUSTOMIZE_TGZ_URL="https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/${KUSTOMIZE_TGZ}"
300315
KUSTOMIZE_CHEKSUMS_URL="https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/checksums.txt"
@@ -313,7 +328,11 @@ set -euf -o pipefail
313328
TEMP_DIR="$(mktemp -d)"
314329
cd "${TEMP_DIR}"
315330
TKN_VERSION="0.20.0"
316-
TKN_ARCH="Linux_x86_64"
331+
if [ "$TARGETARCH" = "arm64" ]; then
332+
TKN_ARCH="Linux_arm64"
333+
else
334+
TKN_ARCH="Linux_x86_64"
335+
fi
317336
TKN_TGZ="tkn_${TKN_VERSION}_${TKN_ARCH}.tar.gz"
318337
TKN_TGZ_URL="https://github.com/tektoncd/cli/releases/download/v${TKN_VERSION}/${TKN_TGZ}"
319338
TKN_CHEKSUMS_URL="https://github.com/tektoncd/cli/releases/download/v${TKN_VERSION}/checksums.txt"
@@ -332,7 +351,7 @@ set -euf -o pipefail
332351
TEMP_DIR="$(mktemp -d)"
333352
cd "${TEMP_DIR}"
334353
KN_VERSION="1.13.0"
335-
KN_ARCH="linux-amd64"
354+
KN_ARCH="linux-${TARGETARCH}"
336355
KN_BIN="kn-${KN_ARCH}"
337356
KN_BIN_URL="https://github.com/knative/client/releases/download/knative-v${KN_VERSION}/${KN_BIN}"
338357
KN_CHEKSUMS_URL="https://github.com/knative/client/releases/download/knative-v${KN_VERSION}/checksums.txt"
@@ -352,7 +371,7 @@ set -euf -o pipefail
352371
TEMP_DIR="$(mktemp -d)"
353372
cd "${TEMP_DIR}"
354373
TF_VERSION="1.7.5"
355-
TF_ARCH="linux_amd64"
374+
TF_ARCH="linux_${TARGETARCH}"
356375
TF_ZIP="terraform_${TF_VERSION}_${TF_ARCH}.zip"
357376
TF_ZIP_URL="https://releases.hashicorp.com/terraform/${TF_VERSION}/${TF_ZIP}"
358377
TF_CHEKSUMS_URL="https://releases.hashicorp.com/terraform/${TF_VERSION}/terraform_${TF_VERSION}_SHA256SUMS"
@@ -367,7 +386,7 @@ rm -rf "${TEMP_DIR}"
367386
EOF
368387

369388
## skaffold
370-
RUN curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && \
389+
RUN curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-${TARGETARCH} && \
371390
install skaffold /usr/local/bin/
372391

373392
# e2fsprogs setup

0 commit comments

Comments
 (0)