Simplify Dockerfile to single-stage build and optimize deployment configuration

This commit is contained in:
wood chen 2025-02-08 18:42:08 +08:00
parent afe0d5fc11
commit 4c48a50aca

View File

@ -1,15 +1,4 @@
# 使用多阶段构建
FROM golang:1.21-alpine AS builder
WORKDIR /build
# 复制后端代码
COPY backend/ .
# 构建后端(禁用 CGO使用纯 Go 构建)
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
# 最终镜像
# 使用 Alpine 作为基础镜像
FROM alpine:3.18
WORKDIR /app
@ -25,18 +14,13 @@ RUN apk add --no-cache \
# 创建必要的目录
RUN mkdir -p /app/data /app/frontend
# 从构建阶段复制后端二进制文件
COPY --from=builder /build/main ./
# 复制 nginx 配置
COPY backend/config/nginx.conf /etc/nginx/nginx.conf
# 复制前端构建产物
# 复制构建产物
COPY backend/main ./
COPY frontend/dist /app/frontend
# 复制启动脚本
COPY backend/config/nginx.conf /etc/nginx/nginx.conf
COPY scripts/start.sh ./
RUN chmod +x start.sh
RUN chmod +x start.sh main
EXPOSE 80