Loading

docker构建多平台镜像

交叉编译环境准备

wget https://github.com/docker/buildx/releases/download/v0.9.1/buildx-v0.9.1.linux-amd64
mv buildx-v0.9.1.linux-amd64 ~/.docker/cli-plugins/docker-buildx
mkdir -p ~/.docker/cli-plugins
chmod +x ~/.docker/cli-plugins/docker-buildx
docker run --privileged --rm tonistiigi/binfmt --install all
docker buildx create --name mybuilder --bootstrap --use --platform linux/amd64,linux/arm64
docker buildx ls

docker 配置文件/etc/docker/daemon.json需要添加如下配置项

{
  "experimental": true  
}

编译arm64和amd64镜像

hello.go

package main

import (
        "fmt"
        "runtime"
)

func main() {
        fmt.Printf("Hello, %s!\n", runtime.GOARCH)
}

Dockerfile

FROM golang:alpine AS builder
WORKDIR /app
ADD . .
RUN go mod init hello && \
    go build -o hello .

FROM alpine
WORKDIR /app
COPY --from=builder /app/hello .
CMD ["./hello"]

构建上传

docker buildx build -t xwjh/hello:v1 --platform=linux/arm64,linux/amd64 . --push
posted @ 2024-03-08 17:23  小维江湖  阅读(72)  评论(0)    收藏  举报