未定义变量
目录
输出
Usage of undefined variable '$foo'
描述
此检查可确保环境变量和构建参数正确无误 使用前声明。虽然未声明的变量可能不会导致 立即生成失败,它们可能会导致以后出现意外行为或错误 在构建过程中。
此检查不会评估 、 和 使用 shell 形式的说明的未定义变量。
这是因为当你使用 shell 表单时,变量由命令
壳。RUN
CMD
ENTRYPOINT
它还可以检测常见错误,例如变量名称中的拼写错误。例如,在 以下 Dockerfile:
FROM alpine
ENV PATH=$PAHT:/app/bin
检查会识别出 未定义,并且可能是 :$PAHT
$PATH
Usage of undefined variable '$PAHT' (did you mean $PATH?)
例子
❌ Bad:是未定义的构建参数。$foo
FROM alpine AS base
COPY $foo .
✅ Good:在尝试访问之前声明为 build 参数。foo
FROM alpine AS base
ARG foo
COPY $foo .
❌ Bad:未定义。$foo
FROM alpine AS base
ARG VERSION=$foo
✅ Good:基础镜像定义$PYTHON_VERSION
FROM python AS base
ARG VERSION=$PYTHON_VERSION