Update Dockerfile to disable CGO

This commit is contained in:
DullJZ
2025-09-24 14:24:49 +08:00
parent 71a72600fe
commit 4b5c9a658d

View File

@@ -1,8 +1,9 @@
# 多阶段构建用于减小镜像大小
FROM golang:1.24-alpine AS builder
# 安装构建依赖包括CGO支持的sqlite3
RUN apk add --no-cache gcc musl-dev sqlite-dev git ca-certificates tzdata
# 安装构建依赖
# 注意:不再需要 gcc, musl-dev, sqlite-dev,因为使用 modernc.org/sqlite 纯Go驱动
RUN apk add --no-cache git ca-certificates tzdata
# 设置工作目录
WORKDIR /build
@@ -14,17 +15,18 @@ RUN go mod download && go mod tidy
# 复制源码
COPY . .
# 构建应用启用CGO
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build \
# 构建应用
# CGO_ENABLED=0: 禁用CGO使用纯Go SQLite驱动 (modernc.org/sqlite)
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
-ldflags="-w -s -X main.version=$(git describe --tags --always)" \
-o s3-balance \
cmd/s3-balance/main.go
# 运行时镜像
# 运行时镜像 - 使用轻量级Alpine Linux
FROM alpine:latest
# 安装运行时依赖包括sqlite库
RUN apk --no-cache add ca-certificates tzdata sqlite-libs
# 安装运行时依赖
RUN apk --no-cache add ca-certificates tzdata
# 设置时区
ENV TZ=Asia/Shanghai