# 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