This product is not supported for your selected Datadog site. ().
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

ID: docker-best-practices/env-no-refer-envvar

Language: Docker

Severity: Info

Category: Best Practices

Description

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

ENV FOO=bar \
    BAZ=$FOO/baz
ENV FOO=bar \
    BAZ=${FOO}/baz

Compliant Code Examples

ENV FOO=bar
ENV BAZ=${FOO}/baz
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains