From 5a8b038ac07d8a47b9e310178005fef328bd80fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=96=8C?= <259278618@qq.com> Date: Wed, 20 May 2026 08:56:19 +0800 Subject: [PATCH] dockerfile --- Dockerfile | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a5218b6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,44 @@ +# 多阶段构建 - 第一阶段:编译(使用已安装的镜像) +FROM golang:1.26-alpine3.23 AS builder + +RUN apk add --no-cache git ca-certificates tzdata + +ENV GO111MODULE=on +ENV GOPROXY=https://goproxy.cn,direct +ENV CGO_ENABLED=0 +ENV GOTOOLCHAIN=auto +ENV GOPRIVATE=gitea.com/red-future/common + +# 配置git使用私有Gitea仓库(带Token认证) +RUN git config --global url."http://x-token-auth:619679cd366aefea3a50f0622d842a41f2209e08595767bba49c3836ef57d415@116.204.74.41:3000/red-future/common.git".insteadOf "https://gitea.com/red-future/common.git" && \ + git config --global credential.helper store + +WORKDIR /build + +# 复制父目录的 common 模块(因为 go.mod 中使用了本地 replace) +#COPY ../common /build/common +COPY . . + +RUN go mod download && go mod tidy + +RUN go build -ldflags="-s -w" -o main ./main.go + +# 第二阶段:运行 +FROM alpine:3.23 + +ENV TIME_ZONE=Asia/Shanghai +RUN apk add --no-cache ca-certificates tzdata && \ + ln -sf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime + +WORKDIR /app + +# 复制编译好的二进制文件 +COPY --from=builder /build/main . +COPY --from=builder /build/config.yml ./ + +# 创建日志目录 +RUN mkdir -p /logs /app/resource/log/run /app/resource/log/server + +EXPOSE 3009 + +CMD ["./main"]