Problem
Wenn Sie das Host-System neu starten, z. B. für Patches, werden die Abhängigkeiten in den Docker Compose-Dateien möglicherweise nicht erkannt. Infolgedessen ist MySQL nach Simplifier aktiv, wodurch Simplifier keine Datenbankverbindung hat und hängen bleibt.
Lösung
Überblick
- Autostart aller Container in der Docker-Compose-Datei deaktivieren
- Dienst zum Starten von Simplifier erstellen
- Dienst so konfigurieren, dass er beim Starten des Systems automatisch ausgeführt wird
Implementierungsdetails
docker-compose.yml ändern
Für alle Dienste müssen Sie den Wert der Eigenschaft restart ändern. Der Standardwert ist:
restart: always
Ändern Sie dies für alle Dienste in
restart: no
Ein Startskript erstellen
Erstellen Sie auf Ihrem Linux-Host ein neues Bash-Skript, z. B. mit
nano /var/lib/simplifier/bin/startup.sh
Geben Sie diesen Inhalt für dieses Skript ein:
#!/bin/sh docker compose -f /var/lib/simplifier/bin/docker-compose.yml up -d echo "this startupscript has been executed via ron at reboot" + $(date) >> /var/lib/simplifier/startup.log
Mach es ausführbar:
chown u+x /var/lib/simplifier/bin/startup.sh
Einen neuen Systemdienst erstellen
Erstellen Sie auf Ihrem Linux-Host einen neuen Dienst, z. B. mit
nano /etc/systemd/system/start-simplifier-docker.service
Geben Sie diesen Inhalt für diesen Dienst ein:
[Unit] Description=Simplifier-Docker-Container starten After=docker.service Requires=docker.service [Install] WantedBy=multi-user.target [Service] Type=oneshot ExecStart=/bin/sh /var/lib/simplifier/bin/startup.sh RemainAfterExit=yes User=root Group=root WorkingDirectory=/var/lib/simplifier/bin/ Restart=on-failure
Den neuen Dienst aktivieren
Service Daemon aktualisieren
systemctl daemon-reload
Das Service-Skript testen
systemctl start start-simplifier-docker.service
Die Protokolle überprüfen
journalctl -u start-simplifier-docker.service
Wenn dies wie erwartet funktioniert, können Sie mit dem folgenden Befehl sicherstellen, dass es beim Booten startet.
systemctl enable start-simplifier-docker.service











