Esto está en una máquina virtual Ubuntu 14.04 LTS con Docker y sospecho que respawnes la causa de mi problema, pero no estoy seguro de la solución ideal.
Script de inicio actual ( cat /etc/init/dockersuitecrm.conf)
description "Start docker containers"
author "Batman"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
docker-compose -f /usr/bin/myapp/docker-compose.yml -p myapp start
end script
Esto 'funciona' porque myappestá vivo y responde, pero /sbin/initocupa toda la CPU cuando monitorizo htop. Si elimino la entrada de upstart ( sudo rm /etc/init/dockersuitecrm.conf) y manualmente SSH y la ejecuto docker-compose -f /usr/bin/myapp/docker-compose.yml -p myapp start, no veo la CPU al 100% de problemas y, como antes, myappvuelve a estar activa y receptiva.
Entonces sospecho que la forma en que estoy comenzando Docker-compose es incorrecta. ¿Cuál es la forma correcta de comenzar docker-composesiempre funcionando sin intervención manual?
EDITAR: No debería importar sino /usr/bin/myapp -> /home/batman/dockerapps/myappcomo un enlace simbólico.

respawncomando en el script.docker-compose start.scriptbloque. Tal vez eso es parte del problema? Tengochdir /usr/bin/myapp/y en la siguiente línea en suexec docker-compose uplugar.docker-compose up -dRespuestas:
Simplemente use crontab, en lugar de usar un intervalo de tiempo, simplemente diga @reboot
Inicie sesión como el usuario que debe iniciar este script y escriba el comando
y luego ingrese
Reinicie el sistema y vea si funciona. Hay una ventaja sobre el arranque, incluso si se inicia un poco más tarde, no tiene que preocuparse mucho por las dependencias como las redes, etc. para estar listo.
fuente
Suponiendo que está utilizando la versión 2 de las definiciones de Docker Compose en usted
docker-compose.yml, puede hacer lo siguiente:Definiendo
restart: alwaysasí:Referencia: https://docs.docker.com/compose/compose-file/compose-file-v2/
fuente
Docker no está listo de inmediato. Si ejecuta el script demasiado pronto, no pasará nada. El docker comenzará a responder al comando docker ps tan pronto como esté listo para que pueda usar este truco en crontab:
nano / etc / crontabs / root
@reboot / usr / bin / docker ps && / usr / bin / docker-compose -f /prod.yml start
fuente