UndefinedVar

输出

Usage of undefined variable '$foo'

描述

此检查确保环境变量和构建参数在使用前已正确声明。虽然未声明的变量可能不会立即导致构建失败,但它们可能在构建过程后期导致意外行为或错误。

此检查不会评估使用 shell 形式的 `RUN`、`CMD` 和 `ENTRYPOINT` 指令中未定义的变量。这是因为当您使用 shell 形式时,变量由命令 shell 解析。

它还会检测常见的错误,例如变量名称中的拼写错误。例如,在以下 Dockerfile 中

FROM alpine
ENV PATH=$PAHT:/app/bin

该检查会识别出 `$PAHT` 未定义,很可能是 `$PATH` 的拼写错误。

Usage of undefined variable '$PAHT' (did you mean $PATH?)

示例

❌ 错误:`$foo` 是一个未定义的构建参数。

FROM alpine AS base
COPY $foo .

✅ 正确:在使用 `foo` 之前将其声明为构建参数。

FROM alpine AS base
ARG foo
COPY $foo .

❌ 错误:`$foo` 未定义。

FROM alpine AS base
ARG VERSION=$foo

✅ 正确:基础镜像定义了 `$PYTHON_VERSION`。

FROM python AS base
ARG VERSION=$PYTHON_VERSION
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.