Gostaria de perguntar se é possível executar o comando 2 CMD. Eu sei que não podemos, se colocarmos 2 comandos CMD ele só executará o último. Aqui está o que eu tentei:
CMD bash /start-script.sh && /usr/bin/supervisord -c /etc/supervisord.conf
Mas não executa o serviço de ambos.
Aqui está o separadoCMD
CMD ["/start-script.sh"]
ENTRYPOINT [ "/entrypoint.sh" ]
CMD [ "/usr/bin/supervisord", "-c", "/etc/supervisord.conf" ]
Por favor, pense sobre o que você está planejando fazer aqui, pois sua abordagem está um pouco fora das melhores práticas com o Docker.
Em resumo, fora das práticas recomendadas do docker: você não deve iniciar dois aplicativos, mas apenas um em um contêiner do docker. Esse conselho faz sentido, pois o docker interrompe o contêiner quando o aplicativo é encerrado. Se você tem mais de um, você está basicamente ferrado.
No entanto... Existem soluções alternativas que podem ajudá-lo:
Os mais simples são: iniciar um único script de shell, que inicia os dois aplicativos e depois entra em um loop sem fim.
use uma solução como o supervisord que permite lidar com várias aplicações/serviços em paralelo.
A documentação para ambas as soluções pode ser encontrada aqui: https://docs.docker.com/config/containers/multi-service_container/
Minha preferência pessoal seria usar volumes compartilhados e contêiner docker separado. (você ainda pode colá-los com docker-compose). Usando isso, você tem controle total sobre cada aplicativo e é bastante simples e direto.