Inicie o contêiner do Docker e abra o navegador da web no host

1

Recentemente, enfrentei um caso não trivial (para mim). Talvez você saiba alguma maneira de resolvê-lo.

Eu tenho um shell script que executa o comando Docker para iniciar o contêiner do Ubuntu, que acaba com o guest Bash que inicia alguns serviços do sistema, incluindo um servidor web. Após o guest Bash ser inicializado, quero abrir o navegador da web na minha máquina host. Atualmente, parece que:

docker run -it -p $PORT:80 -v $ROOT:/usr/share/nginx $PROJECT
python -m webbrowser http://localhost:$PORT

Mas, obviamente, isso não funciona bem, pois o script aguarda até que docker saia para iniciar python . Trocá-los não funcionará tão bem, pois o site será carregado antes que o Bash convidado (e o servidor da web) seja iniciado. Ao mesmo tempo, preciso executar o Docker com -it , portanto, docker ... & python ... não funcionará tão bem.

Existe alguma maneira de fazer as coisas funcionarem?

    
por VisioN 25.07.2016 / 14:05

1 resposta

1

Você pode executar o navegador após um atraso inicial em segundo plano:

(sleep 2 && python -m webbrowser http://localhost:$PORT) &
docker run -it -p $PORT:80 -v $ROOT:/usr/share/nginx $PROJECT

Eu faço isso para um wrapper docker para aderência para visualizar as mensagens do README por um contêiner no host e funciona bem para mim. Depende de quanto tempo o seu contêiner precisa para começar.

    
por 25.07.2016 / 15:13