29 lines
670 B
Docker
29 lines
670 B
Docker
# 多阶段构建:先编译 Go 后端,再使用最小运行时镜像
|
|
ARG GO_IMAGE=golang:1.25.8-alpine3.23
|
|
|
|
FROM ${GO_IMAGE} AS builder
|
|
WORKDIR /app
|
|
|
|
RUN apk add --no-cache git
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go env -w GOPROXY=https://goproxy.cn,direct && go mod download
|
|
|
|
COPY . ./
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /app/stock-user-system ./cmd/api
|
|
|
|
FROM alpine:3.23
|
|
RUN apk add --no-cache ca-certificates tzdata
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /app/stock-user-system /app/stock-user-system
|
|
|
|
ENV DATABASE_URL=""
|
|
ENV JWT_SECRET=""
|
|
ENV JWT_EXPIRATION_HOURS="168"
|
|
ENV PORT="3019"
|
|
ENV GIN_MODE="release"
|
|
|
|
EXPOSE 3019
|
|
CMD ["/app/stock-user-system"]
|