2024-10-31 19:10:55 +08:00
|
|
|
# 使用官方的 Go 运行时作为基础镜像
|
2024-10-31 19:37:28 +08:00
|
|
|
FROM golang:latest AS builder
|
2024-10-31 23:27:19 +08:00
|
|
|
ENV GO111MODULE=on \
|
|
|
|
|
CGO_ENABLED=0 \
|
|
|
|
|
GOOS=linux \
|
|
|
|
|
GOARCH=amd64 \
|
|
|
|
|
GOPROXY=https://goproxy.cn,direct
|
2024-10-31 19:10:55 +08:00
|
|
|
# 设置工作目录
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# 将当前目录下的所有文件复制到工作目录中
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
|
|
# 构建可执行文件
|
|
|
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -v -o app .
|
|
|
|
|
|
2024-11-01 00:29:35 +08:00
|
|
|
|
2024-10-31 19:10:55 +08:00
|
|
|
# 使用一个更小的基础镜像来减小最终镜像的大小
|
|
|
|
|
FROM alpine:latest
|
2024-11-01 00:29:35 +08:00
|
|
|
# 时区设置成当前时区
|
|
|
|
|
RUN apk add --no-cache tzdata
|
|
|
|
|
ENV TZ="Asia/Shanghai"
|
2024-10-31 19:10:55 +08:00
|
|
|
# 设置工作目录
|
|
|
|
|
WORKDIR /root/
|
|
|
|
|
# 从构建阶段复制可执行文件
|
|
|
|
|
COPY --from=builder /app/app .
|
2024-11-01 00:29:35 +08:00
|
|
|
# 在容器目录 /root/ 创建一个目录 为config
|
2025-06-23 17:08:58 +08:00
|
|
|
RUN mkdir config .
|
|
|
|
|
COPY --from=builder /app/config/ ./config/
|
|
|
|
|
COPY --from=builder /app/web/ ./web/
|
2024-11-01 01:19:55 +08:00
|
|
|
|
2024-10-31 19:10:55 +08:00
|
|
|
# 暴露端口
|
2024-12-12 18:00:15 +08:00
|
|
|
EXPOSE 8910
|
2024-10-31 19:10:55 +08:00
|
|
|
|
|
|
|
|
# 运行可执行文件
|
|
|
|
|
CMD ["./app"]
|