user/Dockerfile
timerzz e7e3309896 优化Docker构建流程
- 添加UPX压缩步骤减小可执行文件体积
- 使用多阶段构建减小最终镜像大小
- 更新基础镜像到最新版本
2025-04-22 17:30:36 +08:00

31 lines
777 B
Docker

# 使用官方Golang最新版本作为构建环境
FROM golang:latest AS builder
WORKDIR /app
# 复制项目文件
COPY . .
# 构建应用
RUN apt update && apt install -y xz-utils && CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o main .
# upx压缩
RUN wget -c $(curl -s https://api.github.com/repos/upx/upx/releases/latest | grep browser_download_url | grep linux |grep amd64| cut -d'"' -f4) -O - |tar --strip-components 1 -xvJf - && ./upx ./main
# 使用轻量级的Alpine镜像作为运行时环境
FROM alpine:latest
# 安装必要的工具
RUN apk --no-cache add ca-certificates
# 设置工作目录
WORKDIR /root/
# 从构建阶段复制可执行文件
COPY --from=builder /app/main .
# 暴露端口
EXPOSE 80
# 设置容器启动命令
CMD ["./main"]