Compose: Variáveis ​​de ambiente não são definidas ao usar docker-compose por meio de ssh

Criado em 29 dez. 2016  ·  4Comentários  ·  Fonte: docker/compose

Olá,

Dado docker-compose 1.9.0 e o seguinte docker-compose.yml:

version: '2'
services:
kafka:
image: wurstmeister/kafka
environment:
KAFKA_ADVERTISED_HOST_NAME: ${HOSTNAME}

Quando eu executo o seguinte comando:

ssh [email protected] "docker-compose up -d

Então, a variável de ambiente do nome do host não é reconhecida. Recebo a seguinte mensagem:

A variável HOSTNAME não está definida. Padronizando para uma string em branco.

Se eu executar o mesmo comando no host "bar" com o usuário "foo", não obtenho o erro. Mesmo se eu primeiro conectar com ssh e, em seguida, executar o comando.
Este é um grande problema para nós. Este fluxo de trabalho acontece em nosso CI.

A única solução alternativa que encontramos é escrever o seguinte script:

#!/bin/bash
export HOSTNAME=${HOSTNAME}
docker-compose up -d

E executá-lo através de ssh .. Que não é bonito ..

kinquestion

Comentários muito úteis

Achei isso que parece relevante. bash não exporta $HOSTNAME por padrão, o que explica por que não está sendo visto por docker-compose .

Consegui reproduzir localmente em meu ambiente Ubuntu 16.04, então posso confirmar que isso também não tem nada a ver com SSH.

Todos 4 comentários

Bem, isso não acontece porque ao executar o comando por meio de ssh diretamente, você não está realmente abrindo um shell? Significa que algumas variáveis ​​de ambiente como $HOSTNAME não serão definidas?

Parece que seu problema é com UNIX e / ou SSH - não vejo nada que possa ser feito sobre isso no nível do Compose.

Isso é o que eu estava pensando. Mas a seguinte solução alternativa de comando funciona. O que significa que a variável HOSTNAME está definida corretamente durante a sessão ssh. Então não sei porque compor não reconheço ... Isso é estranho.

Achei isso que parece relevante. bash não exporta $HOSTNAME por padrão, o que explica por que não está sendo visto por docker-compose .

Consegui reproduzir localmente em meu ambiente Ubuntu 16.04, então posso confirmar que isso também não tem nada a ver com SSH.

@ shin- @made Como consertar isso no Ubuntu, por favor, esclareça?

Esta página foi útil?
0 / 5 - 0 avaliações