UndefinedVar

Table of contents

Output

Usage of undefined variable '$foo'

Description

Before you reference an environment variable or a build argument in a RUN instruction, you should ensure that the variable is declared in the Dockerfile, using the ARG or ENV instructions.

Attempting to access an environment variable without explicitly declaring it doesn't necessarily result in a build error, but it may yield an unexpected result or an error later on in the build process.

This check also attempts to detect if you're accessing a variable with a typo. For example, given the following Dockerfile:

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

The check detects that $PAHT is undefined, and that it's probably a misspelling of PATH.

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

Examples

❌ Bad: $foo is an undefined build argument.

FROM alpine AS base
COPY $foo .

✅ Good: declaring foo as a build argument before attempting to access it.

FROM alpine AS base
ARG foo
COPY $foo .