Hola,
Dado docker-compose 1.9.0 y el siguiente docker-compose.yml:
version: '2'
services:
kafka:
image: wurstmeister/kafka
environment:
KAFKA_ADVERTISED_HOST_NAME: ${HOSTNAME}
Cuando ejecuto el siguiente comando:
ssh [email protected] "docker-compose up -d
Entonces no se reconoce la variable de entorno del nombre de host. Recibo el siguiente mensaje:
La variable HOSTNAME no está configurada. Por defecto a una cadena en blanco.
Si ejecuto el mismo comando en la "barra" del host con el usuario "foo", no obtengo el error. Lo mismo si primero me conecto con ssh y luego ejecuto el comando.
Este es un tema importante para nosotros. Este flujo de trabajo ocurre en nuestro CI.
La única solución que encontramos es escribir el siguiente script:
#!/bin/bash
export HOSTNAME=${HOSTNAME}
docker-compose up -d
Y ejecutarlo a través de ssh .. Que no es guapo ..
Bueno, ¿no sucede eso porque al ejecutar el comando a través de ssh directamente, en realidad no está abriendo un shell? ¿Significa que algunas variables de entorno como $HOSTNAME
no se establecerán?
Parece que su problema es con UNIX y / o SSH; no veo nada que se pueda hacer al respecto en el nivel de redacción.
Eso es lo que estaba pensando. Pero la siguiente solución de comando funciona ... Lo que significa que la variable HOSTNAME está configurada correctamente durante la sesión ssh. Entonces no sé por qué componer no lo reconozco ... Eso es raro.
Encontré esto que parece relevante. bash
no exporta $HOSTNAME
de forma predeterminada, lo que explica por qué docker-compose
no lo ve.
Pude reproducir localmente en mi entorno Ubuntu 16.04, así que puedo confirmar que esto tampoco tiene nada que ver con SSH.
@ shin- @made ¿Cómo solucionar esto en Ubuntu, por favor aclare?
Comentario más útil
Encontré esto que parece relevante.
bash
no exporta$HOSTNAME
de forma predeterminada, lo que explica por quédocker-compose
no lo ve.Pude reproducir localmente en mi entorno Ubuntu 16.04, así que puedo confirmar que esto tampoco tiene nada que ver con SSH.