Add Docker build multi-platform support

This commit is contained in:
devad 2024-10-12 22:12:57 +08:00
parent 0a20cda5f7
commit d17090409e
2 changed files with 5 additions and 5 deletions

View File

@ -38,10 +38,9 @@ jobs:
username: ${{ secrets.ALIYUN_USERNAME }}
password: ${{ secrets.ALIYUN_PASSWORD }}
- name: Build and push
- name: Build and push multi-arch image
run: |
docker build -t ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{env.IMAGE_TAG}} .
docker push ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{env.IMAGE_TAG}}
docker buildx build --platform linux/amd64,linux/arm64 -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} --push .
- name: Set up SSH key
run: |

View File

@ -1,4 +1,4 @@
FROM golang:1.22.4-alpine3.20 AS builder
FROM --platform=$BUILDPLATFORM golang:1.22.4-alpine3.20 AS builder
WORKDIR /app
COPY . .
@ -6,7 +6,8 @@ COPY . .
ENV GO111MODULE=on GOPROXY=https://goproxy.cn,direct
RUN go mod download
RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o pcm-core-api
# 使用 GOOS 和 GOARCH 环境变量来构建不同架构的二进制文件
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags="-w -s" -o pcm-core-api
FROM alpine:latest