Am Freitag, dem 21.02.2025 um 21:02 +0100 schrieb Uwe Koloska:
Am Montag, dem 17.02.2025 um 20:20 +0100 schrieb N. Schwirz:
Du kannst hier entweder in der systemd .service-Datei das Arbeitsverzeichnis definieren, z.B.
[Service] User=meinuser Group=docker WorkingDirectory=/root/git/gitlab
Oder du gibt dem docker-compose-Befehl den Pfad zur docker-compose- Datei mit. Ich würde erstes empfehlen.
@daniel: Von welcher systemd service-Datei redest du?
Ich hatte den OP zu schnell gelesen. Ich dachte, der OP startet aus einer systemd .service Datei den Verbund und wäre der Meinung, das ginge nicht weil er docker-compose im Verzeichnis ausführen muss, in dem die docker-compose.yaml liegt. Daher mein Hinweis. Ich sehe nun, dass ich zu schnell gelesen habe.
Unabhängig davon kann man einen derartigen Verbund natürlich auch via selbst geschriebener Service-Datei laufen lassen. Als Beispiel:
---------------------------------------------- [Unit] Description=Foo Docker Service Requires=docker.service After=network.target docker.service ConditionPathExists=/srv/foo/docker-compose.yml
[Service] User=user Group=docker WorkingDirectory=/srv/foo Environment=FOO_HOME=/srv/foo/data ExecStartPre=/usr/bin/docker-compose pull --include-deps ExecStart=/usr/bin/docker-compose up ExecReload=/usr/bin/docker-compose restart -t 30 ExecStop=/usr/bin/docker-compose down --remove-orphans Restart=on-failure
[Install] WantedBy=multi-user.target Alias=docker-foo.service -----------------------------------------------
Wenn Docker die Container nicht automatisch startet, ist das eine Alternative.
VG Daniel