From 0ffe5c31bb9d12a636275011ebad268f80426d63 Mon Sep 17 00:00:00 2001 From: lxh2875931338 Date: Mon, 27 Jul 2026 22:55:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84dockerfile=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E5=85=B6=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E=A5=E5=80=9F=E5=8A=A9?= =?UTF-8?q?deploy=E8=84=9A=E6=9C=AC=E7=9B=B4=E6=8E=A5=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e221694 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,46 @@ +# ============================================================ +# 构建阶段 +# ============================================================ +FROM golang:alpine AS builder + +WORKDIR /app + +# 复制依赖文件(如果存在 go.sum 则一并复制) +COPY go.mod go.sum* ./ +RUN go env -w GOPROXY=https://goproxy.cn,direct +RUN go mod download + +# 复制全部源码(包含 bin/ 和 static/) +COPY . . + +# 编译 Linux 版(CGO_ENABLED=0 静态编译,-p 1 降低内存峰值) +RUN CGO_ENABLED=0 GOOS=linux go build -p 1 -ldflags="-s -w" -o frps-console . + +# ============================================================ +# 运行阶段 +# ============================================================ +FROM alpine:latest + +# 安装 ca-certificates 和 tzdata(确保 HTTPS 和时区正常) +RUN apk --no-cache add ca-certificates tzdata + +WORKDIR /app + +# 从构建阶段复制编译好的二进制 +COPY --from=builder /app/frps-console /app/frps-console + +# 创建数据目录(用于持久化 db 和日志) +RUN mkdir -p /app/data + +# 暴露端口(与 deploy.sh 中默认端口一致) +EXPOSE 9365 + +# 环境变量(可被 docker run -e 覆盖) +ENV PORT=9365 +ENV TZ=Asia/Shanghai + +# 数据卷(持久化数据库、配置、日志) +VOLUME ["/app/data"] + +# 启动 +ENTRYPOINT ["/app/frps-console"] \ No newline at end of file