En la definición de la tarea en ECS, proporcioné la variable de entorno de la siguiente manera:
Clave como HOST_NAME y el valor como something.cloud.com
En mi local, uso este comando de ejecución de la ventana acoplable y puedo pasar mis variables env, pero a través de la definición de la tarea, las variables no se pasan al contenedor.
El siguiente comando de ejecución de docker funciona en local, pero ¿cómo lo configuro en la definición de tareas en AWS ECS?
docker run -e HOST_NAME=something.cloud.com sid:latest
Debe llamarlo name y no key , vea el ejemplo a continuación
{ "name": "nginx", "image": "", "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "environment": [ { "name": "HOST_NAME", "value": "something.cloud.com" } ] }Si utilizó la nueva integración de docker compose con ECS, deberá actualizar la pila.
Es lo suficientemente inteligente como para actualizar solo las partes que cambiaron. En mi caso, esta era la definición de la tarea que no seleccionaba nuevas variables de entorno establecidas en un archivo .env y montadas en el contenedor docker
Ejecute el mismo comando que usó para crear la pila, solo que esta vez la actualizará (solo las partes que cambiaron)
docker compose --context you-ecs-context up -f your.docker-compose.ymlPara obtener más información: https://docs.docker.com/engine/context/ecs-integration/#rolling-update
Puede configurar el nombre de host var en el archivo JSON de definición de tarea
hostname Type: string Required: no The hostname to use for your container. This parameter maps to Hostname in the Create a container section of the Docker Remote API and the --hostname option to docker run.