Compose: modo interativo docker-compose up

Criado em 5 mar. 2016  ·  4Comentários  ·  Fonte: docker/compose

Eu tenho isso em meu Dockerfile:

...
CMD bash on-start.sh

Posso executá-lo usando isso e obtenho um shell interativo conforme desejado.

$ docker run -it imagename
$ _

Mas não funciona ao fazer isso:

$ docker-compose up
...
exited with code 0

Se eu fizer isso, também funcionará, mas os serviços dependentes não serão iniciados.

$ docker-compose run myservice 
$ _

Minhas versões:

$ docker --version
Docker version 1.10.0, build 590d5108
$ docker-compose --version
docker-compose version 1.6.0, build d99cad6
kinquestion

Comentários muito úteis

Você provavelmente deseja usar stdin_open: true em seu arquivo Compose.

Todos 4 comentários

Você provavelmente deseja usar stdin_open: true em seu arquivo Compose.

Esse é o comportamento esperado. up não é interativo. Ele pode iniciar vários contêineres, portanto, você não pode ter um único terminal com stdin aberto para vários contêineres.

run deve fazer o que você quiser. Se você usar depends_on ele iniciará as dependências a partir do Compose 1.6.2 (o bug foi corrigido no Compose 1.6.1), então você também precisará atualizar.

@dnephin
Daniel, tenho que agradecer por sua nota sobre este assunto. Estou lutando há dois dias para fazer um contêiner funcionar em um modo interativo em um servidor Node, onde também preciso inserir alguns dados por meio do terminal no back end. O texto de sua nota me levou a olhar para o meu problema de uma direção diferente. Uma leitura longa e lenta dos detalhes de composição do docker (incluindo o método run) realmente funcionou para mim. Muito Obrigado.

Eu queria obter acesso interativo ao depurador Python pdb em execução em um ambiente docker-compose. TIL posso fazer isso com docker attach myservice

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