31 lines
725 B
Docker
31 lines
725 B
Docker
ARG GO_BUILDER_IMAGE=docker.m.daocloud.io/library/golang:1.26-alpine
|
|
ARG BACKEND_RUNTIME_IMAGE=docker.m.daocloud.io/library/alpine:3.22
|
|
|
|
FROM ${GO_BUILDER_IMAGE} AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# 复制 Go 依赖文件 / Copy Go dependency files
|
|
COPY backend/go.mod backend/go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY backend ./backend
|
|
WORKDIR /app/backend
|
|
|
|
# 构建 Go 二进制文件 / Build Go binary
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /server ./cmd/server
|
|
|
|
# 最终运行镜像 / Runtime image
|
|
FROM ${BACKEND_RUNTIME_IMAGE}
|
|
|
|
RUN apk --no-cache add ca-certificates tzdata curl
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /server ./server
|
|
# 暴露服务端口 / Expose service port
|
|
EXPOSE 8080
|
|
|
|
# 启动服务 / Run server
|
|
CMD ["./server"]
|