o docker executado a partir do serviço systemd é iniciado, mas sai imediatamente e é reiniciado, mas o docker executado a partir do shell funciona bem

3

Na minha caixa do CentOS 7.2, com o Docker 1.10.3, testei com sucesso o seguinte (executando como root):

docker run --name usljavadoc_server -p 80:80 -p 443:443 -v /opt/app/uslJavadoc/:/var/www/html/ -d eboraas/apache

O conteúdo implantado automaticamente em /opt/app/uslJavadoc pode ser executado a partir do apache em execução no contêiner.

Então, meu próximo passo foi fazer com que isso funcionasse com o systemd, então criei /etc/systemd/system/docker-usljavadoc.service com o seguinte conteúdo:

[Unit]
Description=Apache serving USL Javadoc
Requires=docker.service
After=docker.service

[Service]
TimeoutStartSec=0
Restart=always
ExecStart=/usr/bin/docker run --name usljavadoc_server -p 80:80 -p 443:443 -v /opt/app/uslJavadoc/:/var/www/html/ -d eboraas/apache
ExecStop=/usr/bin/docker stop -t 2 usljavadoc_server
ExecStopPost=/usr/bin/docker rm -f usljavadoc_server

[Install]
WantedBy=default.target

Eu recarreguei manualmente o systemd e iniciei o serviço. Verifiquei que o navegador em outra caixa poderia alcançar o processo do apache e obter o conteúdo adequadamente veiculado. Eu reiniciei para ter certeza de que funciona na reinicialização. Ainda funcionou.

Então, eu pensei que estava feito. No entanto, o que notei quando olhei mais de perto é que o serviço é iniciado com êxito, mas sai imediatamente após a inicialização e, em seguida, é reiniciado. Isso está acontecendo continuamente. Como é apenas conteúdo HTML simples sendo servido (uma árvore javadoc), e que o serviço reinicia imediatamente, os usuários podem nem perceber que há um problema, mas definitivamente não deveria estar fazendo isso.

Alguma idéia de por que esse "docker run" funciona bem no shell e parece começar bem com o systemd, mas sai imediatamente após alguns segundos?

    
por David M. Karr 27.12.2016 / 22:35

0 respostas