Passar a variável de ambiente para o contêiner do docker CMD que avalia no contêiner

2

Estou tentando executar um contêiner do Docker e, quando faço docker run , preciso passar a ele uma variável de ambiente definida dentro do contêiner.

O contêiner docker em questão é cônsul ( link ) e tem um script personalizado como ponto de entrada. Portanto, o clássico sh -c '...$VARIABLE' não funcionará porque tudo isso serve como argumentos para o ponto de entrada e obviamente falha. Escrevendo diretamente algo como:

docker run consul [...] $VARIABLE

também não funciona porque $ VARIABLE é avaliado no host e não no contêiner.

    
por andrei.serea 25.10.2017 / 21:50

1 resposta

2

Entretanto, consegui resolver o meu próprio problema. A resposta foi bem simples. Desde que eu sei que algo como:

docker exec -it container sh -c "echo $VARIABLE"

funciona perfeitamente, eu posso usar sh -c para executar o ponto de entrada inteiro e passar os parâmetros necessários. Portanto, quando você tiver um ponto de entrada personalizado e quiser passar variáveis definidas no próprio container, faça o seguinte:

docker run yourimage sh -c "/path/to/entrypoint.sh param1 param2 ... $SOMEVAR ...."
    
por 30.10.2017 / 13:08