Docker für Fortgeschrittene
Mike Metzger
Data Engineering Consultant
linuxwindowsmacosx64_64 oder amd64arm64arm7os/cpu angegeben, z. B. linux/amd64


--platform=$BUILDPLATFORM$BUILDPLATFORM steht für die Plattform des Hosts, der den Build ausführtARGTARGETOS und TARGETARCHARG TARGETOS TARGETARCHenv gesetzt werden.# Initiale Stage, lokale Plattform verwenden FROM --platform=$BUILDPLATFORM golang:1.21 AS build# Quellcode an Ort und Stelle kopieren WORKDIR /src COPY . .# Umgebungsvariablen vom Host übernehmen ARG TARGETOS TARGETARCH# Code mit den ARG-Variablen kompilieren RUN env GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /final/app .# Container erstellen und den cross-kompilierten Code laden FROM alpine COPY --from=build /final/app /bin
docker build den Befehl docker buildx mit Optionendocker buildx bietet mehr Befehle und Funktionen als docker build, u. a. die Angabe einer Plattformdocker buildx build --platform linux/amd64,linux/arm64 -t multi-platform-app .
docker buildx create --bootstrap --use.Docker für Fortgeschrittene