Estoy trabajando en un archivo docker-compose, en el que necesito especificar container_name desde una variable de entorno.
Mi archivo docker-compose.yml se ve así:
version: '3.0' services: jenkins: environment: - INSTANCE_NAME=team_1 image: my_image container_name: container_$INSTANCE_NAME ports: - "80:80" expose: - "80"
Entonces, creo que cuando ejecuto docker-compose up debería crear un contenedor como nombre, container_team_1 , pero en lugar de eso, se ejecuta como contaner_
También probé esto usando el archivo .env , pero aún así, no puedo usar la variable de entorno en container_name,
aunque, si ejecuto la configuración de docker-compose , puedo ver todas las variables configuradas como sigue,
container_name: container_ environment: COMPANY_NAME: team_1
pero, en realidad, no se adjunta en el nombre del contenedor.
Como puedo ver en la sección de sustitución de variables de la documentación de docker-compose, deberá configurar su $INSTANCE_NAME
en el shell que ejecuta docker-compose up
, porque:
Compose utiliza los valores de las variables del entorno de shell en el que se ejecuta docker-compose.
En primer lugar, haz algo como:
export INSTANCE_NAME=my_instance`
y entonces:
docker-compose up
Saludos.
No puede usar las variables de entorno definidas en docker-compose.yml para la sustitución de variables .
Docker Compose usa .env de forma predeterminada, por lo que debería funcionar cuando se define en el archivo .env
INSTANCE_NAME=team_1
Y luego ejecuta docker-compose up