mirror of
https://github.com/MatrixSeven/file-transfer-go.git
synced 2026-03-23 09:17:38 +08:00
feat: 更新Docker构建配置,支持多架构构建,修改Dockerfile以适应不同目标架构
This commit is contained in:
10
.github/workflows/docker-publish.yml
vendored
10
.github/workflows/docker-publish.yml
vendored
@@ -1,5 +1,5 @@
|
||||
|
||||
name: 🐳 Build and Push Docker Image (AMD64)
|
||||
name: 🐳 Build and Push Docker Image (Multi-Arch)
|
||||
|
||||
on:
|
||||
# 手动触发
|
||||
@@ -57,6 +57,11 @@ jobs:
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
type=raw,value=${{ inputs.version }},enable=${{ github.event_name == 'workflow_dispatch' }}
|
||||
|
||||
- name: 🔧 Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
platforms: arm64
|
||||
|
||||
- name: 🔧 Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
@@ -76,9 +81,10 @@ jobs:
|
||||
- name: 🏗️ Set build platform
|
||||
id: platforms
|
||||
run: |
|
||||
echo "platforms=linux/amd64" >> $GITHUB_OUTPUT
|
||||
echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: 🐳 Build and push Docker image
|
||||
id: build
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
|
||||
11
Dockerfile
11
Dockerfile
@@ -1,5 +1,5 @@
|
||||
# ==============================================
|
||||
# AMD64 Dockerfile - 基于 build-fullstack.sh 流程
|
||||
# Multi-Arch Dockerfile - 基于 build-fullstack.sh 流程
|
||||
# ==============================================
|
||||
|
||||
# 前端构建阶段
|
||||
@@ -35,8 +35,11 @@ RUN apk add --no-cache git ca-certificates tzdata
|
||||
|
||||
ENV GOPROXY=https://proxy.golang.org,direct
|
||||
ENV CGO_ENABLED=0
|
||||
ENV GOOS=linux
|
||||
ENV GOARCH=amd64
|
||||
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
ENV GOOS=${TARGETOS}
|
||||
ENV GOARCH=${TARGETARCH}
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -50,7 +53,7 @@ RUN go mod download
|
||||
# 拷贝前端构建结果
|
||||
COPY --from=frontend-builder /app/chuan-next/out ./internal/web/frontend/
|
||||
|
||||
# 构建 Go 应用 - AMD64 架构(模拟 build-fullstack.sh 的 build_backend 函数)
|
||||
# 构建 Go 应用 - 按目标架构编译(模拟 build-fullstack.sh 的 build_backend 函数)
|
||||
RUN go build -ldflags='-s -w -extldflags '-static'' -o server ./cmd
|
||||
|
||||
# ==============================================
|
||||
|
||||
Reference in New Issue
Block a user