{{tag>dev docker docker-compose arg env build todo}}
====== docker-compose : variables args définies non disponibles lors du build ======
Dans le docker-compose, on utilise la déclaration **args** pour définir des variables d'environnement disponibles seulement lors de la construction de l'image.
Cependant les variables déclarés ne sont pas créées/disponibles dans l'environnement de construction.
Si les variables sont créées dans le Dokerfile le problème ne se présente pas.
Pour pouvoir utiliser args dans le docker-compose, le Dokerfile doit avoir une directive ARG avec le meme label:
...
ARG FQDN
...
RUN
Dans le docker-file on utilise alors la syntaxe suivante pour définir la valeur associée à ce label:
version: "3.3"
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
args:
FQDN: www.example.com
image: tnf/filez_frontend:v1
depends_on:
- db
restart: unless-stopped
...
===== Références =====
* https://github.com/docker/compose-cli/issues/1674
* https://stackoverflow.com/questions/67853731/why-are-args-specified-in-docker-compose-yml-available-in-dockerfile-for-do
* https://stackoverflow.com/questions/50734271/how-to-define-build-args-in-docker-compose