tutorial - ¿Cómo pasar argumentos dentro de docker-compose?
empezando con docker (3)
Ahora
docker-compose
admite la sustitución de variables.
Compose utiliza los valores variables del entorno de shell en el que se ejecuta
docker-compose
.
Por ejemplo, suponga que el shell contiene
POSTGRES_VERSION=9.3
y proporciona esta configuración en su archivo
docker-compose.yml
:
db:
image: "postgres:${POSTGRES_VERSION}"
Cuando ejecuta
docker-compose up
con esta configuración, Compose busca la variable de entorno
POSTGRES_VERSION
en el shell y sustituye su valor en. Para este ejemplo, Compose resuelve la
image
en
postgres:9.3
antes de ejecutar la configuración.
Docker 1.9 permite pasar argumentos a un dockerfile. Ver enlace: https://docs.docker.com/engine/reference/builder/#arg
¿Cómo puedo pasar los mismos argumentos dentro de docker-compose.yml?
Proporcione un ejemplo también, si es posible.
Esta característica se agregó en Compose 1.6.
Referencia: https://docs.docker.com/compose/compose-file/#args
services:
web:
build:
context: .
args:
FOO: foo
Esto ahora se puede hacer a partir de docker-compose v2 + como parte del objeto de
build
;
docker-compose.yml
version: ''2''
services:
my_image_name:
build:
context: . #current dir as build context
args:
var1: 1
var2: c
Vea los documentos de redacción de Docker .
En el ejemplo anterior, "var1" y "var2" se enviarán al entorno de compilación.
Nota: cualquier variable env (especificada mediante el uso del bloque de
environment
) que tenga el mismo nombre que las variables
args
anulará esa variable.