L’instruction ARG
L’instruction ARG permet de définir des variables qui seront utilisables par l’utilisateur lançant les conteneurs.
Autrement dit, ARG permet de fournir des valeurs lors du build en les passant comme valeurs de variables définies dans le Dockerfile.
Exemple :
ARG envL’utilisateur peut ensuite faire lors du lancement :
docker build --build-arg env=prodNotez qu’il est possible de définir des valeurs par défaut dans le Dockerfile :
ARG env=devAttention ! Il ne faut pas utiliser ARG pour passer des secrets (clés, mots de passe etc). Ce n’est pas la manière sécurisée de le faire, que nous verrons plus tard.
L’instruction ENV
L’instruction ENV permet de définir des variables d’environnement.
Exemple :
ENV CLE="Une valeur"Vous pouvez utiliser plusieurs instructions ENV :
ENV CLE1="Une valeur1"
ENV CLE2="Une valeur2"Ou une seule en déclarant les variables d’environnement en les séparant par des espaces :
ENV CLE1="Une valeur1" CLE2="Une valeur2"La différence avec ARG est que les variables d’environnement sont persistées dans l’image après le build. A l’inverse les ARG ne sont pas persistés.
L’instruction LABEL
L’instruction LABEL permet d’ajouter des métadonnées à une image.
C’est-à-dire des informations sur le contenu, l’auteur, la version etc de l’image.
Vous pouvez mettre autant de labels que souhaités, vous pouvez les écrire sur plusieurs lignes, et/ou dans plusieurs instructions LABEL :
LABEL version="2.3.1"
LABEL auteur="arthur@mail.com" Ou dans une seule instruction :
LABEL version="2.3.1" auteur="jean@gmail.com" Aucune des deux formes n’a d’impact sur la taille ou le nombre de couches (layers), utilisez l’une ou l’autre forme suivante votre préférence.
Inspecter une image
La commande pour inspecter une image est docker image inspect.
Elle permet d’obtenir toute la configuration de Docker pour sa création. Elle permet notamment d’obtenir tous les hashs des couches de l’image.
Elle permet également d’accéder aux variables d’environnement qui ont été définies.

