Eu já vi vários tutoriais que parecem fazer a mesma coisa que estou tentando fazer, mas por algum motivo meus contêineres do Docker saem. Basicamente, estou configurando um servidor Web e alguns daemons dentro de um contêiner do Docker. Eu faço as partes finais disso por meio de um script bash chamado run-all.sh
que eu corro pelo CMD no meu Dockerfile. run-all.sh
se parece com isso:
service supervisor start
service nginx start
E inicio-o dentro do meu Dockerfile da seguinte maneira:
CMD ["sh", "/root/credentialize_and_run.sh"]
Percebo que todos os serviços iniciam corretamente quando executo as coisas manualmente (por exemplo, acessando a imagem com -i -t / bin / bash), e tudo parece funcionar corretamente quando executo a imagem, mas sai uma vez termina iniciando meus processos. Eu gostaria que os processos fossem executados indefinidamente e, pelo que entendi, o contêiner precisa continuar em execução para que isso aconteça. No entanto, quando corro docker ps -a
, vejo:
➜ docker_test docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7706edc4189 some_name/some_repo:blah "sh /root/run-all.sh 8 minutes ago Exited (0) 8 minutes ago grave_jones
O que da? Por que está saindo? Eu sei que eu poderia colocar um loop while no final do meu script bash para continuar, mas qual é a maneira certa de impedir que ele saia?