feat: 优化构建流程,使用预编译二进制文件

This commit is contained in:
eryajf
2025-09-29 10:11:02 +08:00
parent 62b3cb6b70
commit 780ac14a8f
3 changed files with 34 additions and 16 deletions

View File

@@ -17,6 +17,31 @@ jobs:
- name: Checkout repository
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
uses: docker/setup-buildx-action@v3

View File

@@ -23,7 +23,8 @@ jobs:
- name: 设置Go环境
uses: actions/setup-go@v5
with:
go-version: '1.25'
go-version-file: "src/go.mod"
cache-dependency-path: "src/go.sum"
- name: 获取版本号
id: version

View File

@@ -1,21 +1,13 @@
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
WORKDIR /root/
COPY --from=builder /app/hubproxy .
COPY --from=builder /app/config.toml .
ENV BINARY_NAME=hubproxy
ARG TARGETOS
ARG TARGETARCH
COPY src/config.toml .
COPY build/hubproxy/${BINARY_NAME}-${TARGETOS}-${TARGETARCH} ${BINARY_NAME}
CMD ["./hubproxy"]