Problem
Wenn Sie das Hostsystem neu starten, z. B. zum Patchen, werden die Abhängigkeiten innerhalb der Docker Compose-Dateien möglicherweise nicht erkannt. Dies hat zur Folge, dass MySQL nach Simplifier gestartet wird, wodurch Simplifier keine Datenbankverbindung hat und feststeckt.
Lösung
Überblick
- Autostart aller Container in der Docker-Compose-Datei deaktivieren
- Dienst zum Starten von Simplifier erstellen
- den Dienst so konfigurieren, dass er beim Starten des Systems automatisch ausgeführt wird
Details zur Umsetzung
Ändern Sie docker-compose.yml
Für alle Dienste müssen Sie den Wert der Eigenschaft “Neustart” ändern. Der Standardwert ist:
Neustart: immer
Für alle Dienste ändern Sie dies in
Neustart: nein
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 "dieses Startskript wurde über ron beim Neustart ausgeführt" + $(Datum) >> /var/lib/simplifier/startup.log
Machen Sie es ausführbar:
chown u+x /var/lib/simplifier/bin/startup.sh
Erstellen Sie einen neuen Systemdienst
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:
[Einheit] Beschreibung=Start Simplifier Docker Container Nach=docker.service Erfordert=docker.service [Installieren] WantedBy=multi-user.target [Service] Typ=Einzelbild ExecStart=/bin/sh /var/lib/simplifier/bin/startup.sh RemainAfterExit=yes Benutzer=Wurzel Gruppe=Wurzel WorkingDirectory=/var/lib/simplifier/bin/ Neustart=bei Fehlschlag
Aktivieren Sie den neuen Dienst
Update Service Daemon
systemctl daemon-reload
Testen Sie das Service-Skript
systemctl start start-simplifier-docker.service
Prüfen Sie die Protokolle
journalctl -u start-simplifier-docker.service
Wenn das wie erwartet funktioniert, können Sie den folgenden Befehl verwenden, um sicherzustellen, dass es beim Booten startet.
systemctl enable start-simplifier-docker.service











