Files
platform/Dockerfile

40 lines
833 B
Docker
Raw Normal View History

2025-04-19 15:59:31 +08:00
# 第一阶段:构建
FROM golang:1.24.0 AS builder
2025-04-19 18:15:46 +08:00
ENV GOPROXY=https://goproxy.cn,direct
2025-04-19 15:59:31 +08:00
WORKDIR /build
# 复制Go模块文件
COPY go.mod go.sum ./
RUN go mod download
# 复制源代码
COPY . .
# 编译
RUN GOOS=linux GOARCH=amd64 go build -ldflags '-w -s' -o bin/platform_linux_amd64 cmd/main/main.go
# 第二阶段:运行环境
FROM ubuntu:24.04
WORKDIR /app
2025-04-19 15:59:31 +08:00
# 从构建阶段复制编译好的二进制文件
COPY --from=builder /build/bin/platform_linux_amd64 /app/platform
# 设置可执行权限
RUN chmod +x /app/platform
2025-04-19 15:59:31 +08:00
# 创建存放密钥文件的目录
RUN mkdir -p /app/certs
# 声明暴露端口(实际端口通过环境变量传入)
ENV APP_PORT=8080
EXPOSE ${APP_PORT}
# 声明卷,用于在运行时挂载私密的证书文件
VOLUME ["/app/certs"]
2025-04-19 15:59:31 +08:00
# 启动平台服务
CMD ["/app/platform"]