FromPlatformFlagConstDisallowed
目录
输出
FROM --platform flag should not use constant value "linux/amd64"
描述
指定--platform
在 Dockerfile 中FROM
指令强制镜像仅在一个目标平台上构建。这会阻止从此 Dockerfile 构建多平台镜像,并且您必须在 中指定的同一平台上构建--platform
.
建议的方法是:
- 省略
FROM --platform
并在 Dockerfile 中使用--platform
参数。 - 用
$BUILDPLATFORM
或其他一些变量组合,用于--platform
论点。 - 阶段名称应包括平台、作系统或架构名称,以指示它仅包含特定于平台的说明。
例子
❌ 坏:使用 constant 参数--platform
FROM --platform=linux/amd64 alpine AS base
RUN apk add --no-cache git
✅ Good:使用默认平台
FROM alpine AS base
RUN apk add --no-cache git
✅ 好:使用 meta 变量
FROM --platform=${BUILDPLATFORM} alpine AS base
RUN apk add --no-cache git
✅ Good:用于具有目标体系结构的多阶段构建
FROM --platform=linux/amd64 alpine AS build_amd64
...
FROM --platform=linux/arm64 alpine AS build_arm64
...
FROM build_${TARGETARCH} AS build
...