Docker 1.9 permet de passer des arguments à un fichier docker. Voir le lien: https://docs.docker.com/engine/reference/builder/#arg
Comment puis-je passer les mêmes arguments dans docker-compose.yml?
Veuillez donner un exemple aussi, si possible.
Cette fonctionnalité a été ajoutée dans Compose 1.6.
Référence: https://docs.docker.com/compose/compose-file/#args
services:
web:
build:
context: .
args:
FOO: foo
Cela peut maintenant être fait à partir de docker-compose v2 + dans le cadre de l'objet build
;
docker-compose.yml
version: '2'
services:
my_image_name:
build:
context: . #current dir as build context
args:
var1: 1
var2: c
Voir le docker compose la documentation .
Dans l'exemple ci-dessus, "var1" et "var2" seront envoyés à l'environnement de construction.
Remarque: toute variable env (spécifiée à l'aide du bloc environment
) portant le même nom que args
variable (s) remplacera cette variable.
Maintenant, docker-compose
prend en charge la substitution de variable.
Compose utilise les valeurs de variable de l'environnement Shell dans lequel docker-compose
est exécuté. Par exemple, supposons que le shell contienne POSTGRES_VERSION=9.3
et que vous fournissiez cette configuration dans votre fichier docker-compose.yml
:
db:
image: "postgres:${POSTGRES_VERSION}"
Lorsque vous exécutez docker-compose up
avec cette configuration, Compose recherche la variable d'environnement POSTGRES_VERSION
dans le shell et substitue sa valeur. Pour cet exemple, Compose résout le image
en postgres:9.3
avant d'exécuter la configuration.