2d14245086
deploy-132 / deploy (push) Has been cancelled
128 的 runner 能拉 docker.io 但连不上 gcr.io(dial 443 i/o timeout),distroless 拉不到。 三个 Go 服务运行 stage 换 alpine:3.20 + ca-certificates(TLS 连 LLM/MinIO)+ tzdata + 非 root 用户。二进制 CGO_ENABLED=0 全静态,alpine 上直接跑;本地已验证构建+启动正常。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
22 lines
977 B
Docker
22 lines
977 B
Docker
# 第 4 层 编排调度。多阶段构建(上下文须为仓库根,因 replace ../sundynix-shared):
|
|
# docker build -f sundynix-dispatcher/Dockerfile -t sundynix/dispatcher .
|
|
FROM golang:1.25-alpine AS build
|
|
WORKDIR /src
|
|
COPY sundynix-shared/go.mod sundynix-shared/go.sum ./sundynix-shared/
|
|
COPY sundynix-dispatcher/go.mod sundynix-dispatcher/go.sum ./sundynix-dispatcher/
|
|
WORKDIR /src/sundynix-dispatcher
|
|
ENV GOWORK=off GOFLAGS=-mod=mod
|
|
RUN go mod download
|
|
WORKDIR /src
|
|
COPY sundynix-shared/ ./sundynix-shared/
|
|
COPY sundynix-dispatcher/ ./sundynix-dispatcher/
|
|
WORKDIR /src/sundynix-dispatcher
|
|
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/dispatcher ./cmd/dispatcher
|
|
|
|
# alpine 运行(内网 runner 连不上 gcr.io;二进制 CGO_ENABLED=0 全静态,ca-certs 供 TLS)。
|
|
FROM alpine:3.20
|
|
RUN apk add --no-cache ca-certificates tzdata && adduser -D -u 10001 app
|
|
USER app
|
|
COPY --from=build /out/dispatcher /dispatcher
|
|
ENTRYPOINT ["/dispatcher"]
|