| 语法 | FROM [--platform=linux/amd64] 镜像[:tag|@digest] [AS 阶段名] |
|---|---|
| 选型 | alpine 小但 musl;debian-slim 兼容好;distroless 无 shell 更安全 |
| 多阶段 | FROM … AS build,后续 COPY --from=build 取产物 |
| 可复现 | 锁 digest(@sha256:…)或至少固定小版本 tag |
多阶段构建示例
多阶段构建示例
FROM --platform=$BUILDPLATFORM golang:1.23 AS build
WORKDIR /src
COPY . .
RUN CGO_ENABLED=0 go build -o /out/app .
FROM gcr.io/distroless/static-debian12
COPY --from=build /out/app /app
ENTRYPOINT ["/app"]首个 FROM 之前声明的 ARG 只能用于 FROM 行本身(如选 tag);要在阶段内用需在阶段里重新 ARG 声明。