feat: 优化构建流程,使用预编译二进制文件
This commit is contained in:
25
.github/workflows/docker-ghcr.yml
vendored
25
.github/workflows/docker-ghcr.yml
vendored
@@ -17,6 +17,31 @@ 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
|
||||||
|
|
||||||
|
|||||||
3
.github/workflows/release.yml
vendored
3
.github/workflows/release.yml
vendored
@@ -23,7 +23,8 @@ jobs:
|
|||||||
- name: 设置Go环境
|
- name: 设置Go环境
|
||||||
uses: actions/setup-go@v5
|
uses: actions/setup-go@v5
|
||||||
with:
|
with:
|
||||||
go-version: '1.25'
|
go-version-file: "src/go.mod"
|
||||||
|
cache-dependency-path: "src/go.sum"
|
||||||
|
|
||||||
- name: 获取版本号
|
- name: 获取版本号
|
||||||
id: version
|
id: version
|
||||||
|
|||||||
22
Dockerfile
22
Dockerfile
@@ -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
|
FROM alpine
|
||||||
|
|
||||||
WORKDIR /root/
|
WORKDIR /root/
|
||||||
|
|
||||||
COPY --from=builder /app/hubproxy .
|
ENV BINARY_NAME=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"]
|
||||||
Reference in New Issue
Block a user