refactor: 重构 Docker 构建流程,使用多阶段构建

This commit is contained in:
eryajf
2025-09-29 14:18:40 +08:00
parent 780ac14a8f
commit 198a18508b
2 changed files with 14 additions and 32 deletions

View File

@@ -17,31 +17,6 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: 设置Go环境
uses: actions/setup-go@v5
with:
go-version-file: "src/go.mod"
cache-dependency-path: "src/go.sum"
- name: 安装 UPX
uses: crazy-max/ghaction-upx@v3
with:
install-only: true
- name: 编译二进制文件
run: |
cd src
# Linux AMD64
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o ../build/hubproxy/hubproxy-linux-amd64 .
# Linux ARM64
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o ../build/hubproxy/hubproxy-linux-arm64 .
# 压缩二进制文件
upx -9 ../build/hubproxy/hubproxy-linux-amd64
upx -9 ../build/hubproxy/hubproxy-linux-arm64
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3

View File

@@ -1,13 +1,20 @@
FROM golang:1.25-alpine AS builder
ARG TARGETARCH
WORKDIR /app
COPY src/go.mod src/go.sum ./
RUN go mod download && apk add upx
COPY src/ .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} go build -ldflags="-s -w" -trimpath -o hubproxy . && upx -9 hubproxy
FROM alpine FROM alpine
WORKDIR /root/ WORKDIR /root/
ENV BINARY_NAME=hubproxy COPY --from=builder /app/hubproxy .
COPY --from=builder /app/config.toml .
ARG TARGETOS
ARG TARGETARCH
COPY src/config.toml .
COPY build/hubproxy/${BINARY_NAME}-${TARGETOS}-${TARGETARCH} ${BINARY_NAME}
CMD ["./hubproxy"] CMD ["./hubproxy"]