From 94b19ad6c2a2d1f41b575bdd9e1339a64819111d Mon Sep 17 00:00:00 2001 From: renzhiyuan <465386466@qq.com> Date: Tue, 21 Jul 2026 16:10:50 +0800 Subject: [PATCH] 1 --- Dockerfile | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/Dockerfile b/Dockerfile index d526c1d..89e4944 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,69 +3,46 @@ # ============================================================ FROM golang:1.26-alpine AS builder -# 设置工作目录 WORKDIR /app -# 安装必要的构建工具 RUN apk add --no-cache git make -# 复制 go.mod 和 go.sum 并下载依赖(利用 Docker 缓存) COPY go.mod go.sum ./ RUN go mod download && go mod verify -# 复制源代码 COPY . . -# 构建二进制文件 +# ✅ main.go 在根目录,直接构建 . RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -ldflags="-s -w" \ -o /app/sdk-generator \ - ./cmd/server + . # ============================================================ # 阶段2: 运行 # ============================================================ FROM alpine:latest -# 安装运行时依赖 RUN apk add --no-cache ca-certificates tzdata git -# 设置时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -# 创建非 root 用户 RUN adduser -D -g '' appuser -# 设置工作目录 WORKDIR /app -# 从构建阶段复制二进制文件 COPY --from=builder /app/sdk-generator /app/sdk-generator - -# 复制 Web 静态文件和模板 COPY --chown=appuser:appuser ./web /app/web -# 创建数据目录并设置权限 RUN mkdir -p /app/outputs /app/uploads && \ chown -R appuser:appuser /app -# 切换到非 root 用户 USER appuser -# 暴露端口 -EXPOSE 5002 +EXPOSE 8080 -# 健康检查 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1 -# 启动 -ENTRYPOINT ["/app/sdk-generator"] - - -#docker run -d \ -# -p 8080:8080 \ -# -v /var/www/sdk-generator/outputs:/app/outputs \ -# --name sdk-generator \ -# sdk-generator \ No newline at end of file +ENTRYPOINT ["/app/sdk-generator"] \ No newline at end of file