This rule advises against referencing an environment variable within the same ENV instruction in a Dockerfile. For example, writing ENV FOO=bar \ BAZ=$FOO/bla is problematic because the Docker build process does not expand environment variables declared in the same ENV command.
To avoid this issue, declare each environment variable in a separate ENV instruction if you need to reference a previously set variable. For instance, use ENV FOO=bar followed by ENV BAZ=${FOO}/bla. This ensures that FOO is properly set and expanded when BAZ is defined, leading to more reliable and predictable builds.
Non-Compliant Code Examples
ENVFOO=bar \
BAZ=$FOO/baz
ENVFOO=bar \
BAZ=${FOO}/baz
Compliant Code Examples
ENVFOO=bar
ENVBAZ=${FOO}/baz
シームレスな統合。 Datadog Code Security をお試しください
Datadog Code Security
このルールを試し、Datadog Code Security でコードを解析する
このルールの使用方法
1
2
rulesets:- docker-best-practices # Rules to enforce Docker best practices.