2

定義済みのTARGETARCHarg変数を使用して、ビルドキット経由でマルチアーキテクチャ Docker イメージを作成しようとしています。

私がやりたいのは、bash変数の間接化のようなものだと思いますが、それがサポートされていないことを理解しており、代替案を考え出すのに苦労しています。

これが私が持っているものです:

FROM alpine:latest

# Buildkit should populate this on build with e.g. "arm64" or "amd64"
ARG TARGETARCH

# Set some temp variables via ARG... :/
ARG DOWNLOAD_amd64="x86_64"
ARG DOWNLOAD_arm64="aarch64"

ARG DOWNLOAD_URL="https://download.url/path/to/toolkit-${DOWNLOAD_amd64}"

# DOWNLOAD_URL must also be set in container as ENV var.
ENV DOWNLOAD_URL $DOWNLOAD_URL

RUN echo "Installing Toolkit" && \
    curl -sSL ${DOWNLOAD_URL} -o /tmp/toolkit-${DOWNLOAD_amd64}

$DOWNLOAD_amd64...これは少し疑似コードですが、うまくいけば私がやろうとしていることを示して$DOWNLOAD_arm64$DOWNLOAD_URLます$TARGETARCH

これはおそらく長い間解決された問題ですが、間違ったものをグーグルで検索しているか、単に取得していません。

4

1 に答える 1