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