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