Prod laesst Phase 1 und Postgres in einem eigenen Netz laufen; die
Verbindung zeigt dort auf den Rechnernamen "postgres", den nur Podmans
DNS innerhalb von bebop-net aufloest. Die Unit hatte --network=pasta
fest verdrahtet - damit waere der erste Lauf an der Namensaufloesung
gescheitert, nicht an der Anmeldung.
Jetzt ${P2_NETZ}, mit Environment=P2_NETZ=pasta als Vorgabe. Die
Umgebungsdateien werden nach Environment= gelesen und ueberschreiben sie;
p2.env.beispiel setzt bebop-net.
Damit ist auch die Warnung vor host.containers.internal hinfaellig: sie
gilt nur ohne eigenes Netz. Die Checkliste sagt das jetzt so.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NupWEBPzsyohVPG47HsTz8
48 lines
1.9 KiB
Desktop File
48 lines
1.9 KiB
Desktop File
# Phase 2 fuer den juengsten Slot. Nach ~/.config/systemd/user/ legen.
|
|
#
|
|
# systemctl --user daemon-reload
|
|
# systemctl --user enable --now wurzelwerk-p2.timer
|
|
#
|
|
# Kein Quadlet: das hier ist kein Dienst, der laeuft, sondern ein Auftrag, der
|
|
# faellig wird. Quadlet-Units sind fuer Container gedacht, die stehen bleiben.
|
|
|
|
[Unit]
|
|
Description=Wurzelwerk Phase 2 (Aufbereitung)
|
|
# Nicht Requires: laeuft Postgres gerade nicht, soll der Slot ausfallen und
|
|
# beim naechsten Mal ueber --aufholen nachgeholt werden, nicht die
|
|
# Abhaengigkeit neu starten.
|
|
After=postgres.service
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
# Zwei Dateien, in dieser Reihenfolge. database.env haelt die
|
|
# Datenbankverbindung und gehoert nicht Phase 2 allein - sie steht auf Prod
|
|
# schon da und wird hier nur mitgelesen, nicht angefasst. p2.env traegt, was
|
|
# nur Phase 2 angeht; wird dort DATABASE_URL noch einmal gesetzt, gewinnt sie,
|
|
# weil systemd spaetere Dateien spaeter liest.
|
|
#
|
|
# Der Rechnername in DATABASE_URL muss aus dem Container heraus aufloesbar
|
|
# sein. Auf Prod steht dort "postgres" - der Containername, den Podmans DNS
|
|
# im Netz bebop-net aufloest. Auf einer Maschine ohne eigenes Netz waere es
|
|
# host.containers.internal; 127.0.0.1 ist es in keinem der beiden Faelle,
|
|
# das zeigt aus dem Container auf den Container.
|
|
#
|
|
# Vorgabe fuer das Netz, von den Umgebungsdateien ueberschreibbar - sie
|
|
# werden nach Environment= gelesen und gewinnen deshalb.
|
|
Environment=P2_NETZ=pasta
|
|
EnvironmentFile=%h/.config/wurzelwerk/database.env
|
|
EnvironmentFile=-%h/.config/wurzelwerk/p2.env
|
|
TimeoutStartSec=1800
|
|
ExecStart=/usr/bin/podman run --rm \
|
|
--name wurzelwerk-p2-lauf \
|
|
--network=${P2_NETZ} \
|
|
--memory=8g --shm-size=1g \
|
|
--volume wurzelwerk-modelle:/cache:U \
|
|
--env DATABASE_URL \
|
|
--env OMP_NUM_THREADS \
|
|
--env HF_HUB_OFFLINE \
|
|
localhost/wurzelwerk-p2 phase2.py --aufholen
|
|
|
|
[Install]
|
|
WantedBy=default.target
|