MarketingSystemDataExportTool/Dockerfile

38 lines
1.1 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FROM golang:1.21-alpine AS builder
ENV CGO_ENABLED=0
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.cn,direct
RUN apk add --no-cache git tzdata
WORKDIR /app
# 复制 go.work 文件(用于工作区配置,必须在项目根目录)
COPY go.work go.work.sum* ./
# 复制 server 模块的依赖文件(先复制依赖文件以利用 Docker 缓存)
COPY server/go.mod server/go.sum ./server/
WORKDIR /app/server
RUN go mod download
# 复制 grpc/user/userv1 模块的依赖文件
WORKDIR /app
COPY grpc/user/userv1/go.mod grpc/user/userv1/go.sum ./grpc/user/userv1/
WORKDIR /app/grpc/user/userv1
RUN go mod download
# 复制所有源代码(包括生成的 proto 文件)
# 注意:必须在 go.work 所在的目录下构建,才能正确识别工作区
WORKDIR /app
COPY server/ ./server/
COPY grpc/user/userv1/ ./grpc/user/userv1/
# 构建应用在项目根目录go.work 会自动生效)
WORKDIR /app/server
RUN go build -o /out/server ./cmd/server/main.go
FROM alpine:3.19
RUN apk add --no-cache tzdata ca-certificates curl bash
WORKDIR /app
COPY --from=builder /out/server /app/server
EXPOSE 8077
ENTRYPOINT ["/app/server"]