Para permitir que los contenedores se inicien automáticamente en el punto de inicio, intenté agregar el comando:
cd directory_has_docker-compose.yml && docker-compose up -d  en /etc/rc.local.    
pero luego de reiniciar la máquina, los contenedores no funcionan.
¿Cómo se ejecuta docker-compose up -dal inicio del sistema?
                    
                        docker
                                docker-compose
                                
                    
                    
                        user39544
fuente
                
                fuente

--restart alwayso--restart unless-stoppedo en docker-compose.yml userestart: always-> Ref . ¡Pero quizás no funcionó en algunos contenedores!Respuestas:
Cuando usamos
crontabo el/etc/rc.localarchivo obsoleto , necesitamos un retraso (por ejemplosleep 10, dependiendo de la máquina) para asegurarnos de que los servicios del sistema estén disponibles. Por lo general,systemd(oupstart) se usa para administrar qué servicios se inician cuando se inicia el sistema. Puede intentar usar una configuración similar para esto:O, si quieres correr sin la
-dbandera:Cambie el
WorkingDirectoryparámetro con la ruta de su proyecto acoplada. Y habilite el servicio para que se inicie automáticamente:fuente
systemctl start docker-compose-appy creo quesystemctl status docker-compose-appson lo que estás buscando.systemctl start docker-compose-appcon esto:Job for docker-compose-app.service failed because the control process exited with error code. See "systemctl status docker-compose-app.service" and "journalctl -xe" for detailsservice docker-compose-app startestado conservice docker-compose-app status, detener conservice docker-compose-app stopDebería poder agregar:
a cada servicio que desee reiniciar en el archivo docker-compose.yml
fuente
restart: alwaystiene algunos errores graves: los montajes de host no se adjuntarán al reiniciar, por ejemplo. En mi opinión, es mejor reinventar la rueda, si la rueda existente es cuadrada.Si está
docker.servicehabilitado al iniciar el sistemay tus servicios en tu
docker-compose.ymlhastodos los servicios se ejecutan cuando reinicia su sistema si ejecuta el siguiente comando solo una vez
fuente
Lo intenté
restart: always, funciona en algunos contenedores (como php-fpm), pero enfrenté el problema de que algunos contenedores (como nginx) todavía no se reinician después del reinicio.Resuelve el problema.
fuente
Use reiniciar: siempre en su docker compose file.
Docker-compose up -dlanzará el contenedor de imágenes nuevamente. Úselodocker-compose startpara iniciar los contenedores detenidos, nunca lanza nuevos contenedores a partir de imágenes.También puede escribir el código en el archivo de la ventana acoplable para que se cree primero, si tiene la dependencia de otros contenedores.
fuente
always, pero tal vezunless-stopped. Otras opciones sonon-failureyno. Esto se conoce como política de reinicio .Como adición a
user39544la respuesta de, un tipo más de sintaxis paracrontab -e:fuente
crontab -ecomo usuario pi, con pi miembro del grupo acoplador ...