# --- 阶段 1: 编译阶段 --- FROM golang:1.24-alpine AS builder # 安装编译 CGO 所需的工具以及 git RUN apk add --no-cache gcc musl-dev git WORKDIR /src # 克隆仓库 (直接克隆到当前目录) RUN git clone https://github.com/1354427059/orchids-api.git . # 下载依赖 RUN go mod download # 编译程序 (开启 CGO) RUN CGO_ENABLED=1 GOOS=linux go build -o /app/server ./cmd/server # --- 阶段 2: 运行阶段 --- FROM alpine:latest WORKDIR /app # 安装必要的运行时库 RUN apk add --no-cache ca-certificates # 从编译阶段拷贝二进制文件 COPY --from=builder /app/server . # 从编译阶段的源码目录拷贝静态资源和初始化数据 # 注意:这里路径需指向 builder 阶段的 /src COPY --from=builder /src/web ./web COPY --from=builder /src/data ./data # 创建调试目录 RUN mkdir -p /app/debug EXPOSE 3002 CMD ["./server"]