# 多阶段构建 FROM golang:alpine AS builder WORKDIR /app # 复制依赖文件 COPY go.mod go.sum ./ # 降级 go.mod 并整理依赖 RUN sed -i 's/go 1.2[6-9].*/go 1.21/' go.mod && \ go mod tidy # 设置代理 RUN go env -w GOPROXY=https://goproxy.cn,direct # 下载依赖 RUN go mod download # 复制全部源码(包括 version.ini、static 等) COPY . . # 编译 RUN CGO_ENABLED=0 GOOS=linux go build \ -ldflags="-s -w" \ -o frpc-console . # 【调试】确认二进制文件已生成 RUN ls -l /app/frpc-console # 运行镜像 FROM alpine:latest # 安装工具 RUN apk --no-cache add ca-certificates tzdata sqlite WORKDIR /app # 从构建阶段复制二进制 COPY --from=builder /app/frpc-console /app/frpc-console # 复制静态文件(从本地直接复制,确保存在) COPY static/ /app/static/ # 暴露端口 EXPOSE 9300 ENTRYPOINT ["/app/frpc-console"]