Die Unit las bisher nur p2.env. Auf Prod steht die Datenbankverbindung
schon in ~/.config/wurzelwerk/database.env und gehoert Phase 1 mit; die
Unit liest jetzt beide, database.env zuerst. p2.env kann DATABASE_URL
ueberschreiben, falls database.env auf 127.0.0.1 zeigt - aus dem
Container heraus laeuft das ins Leere, dort muss
host.containers.internal stehen.
deploy/INBETRIEBNAHME.md haelt die Reihenfolge fest. Zwei Schritte darin
sind nicht offensichtlich und beide teuer, wenn man sie auslaesst:
lexikon.py --laden akteure.py liest aus den Tabellen, nicht aus den
JSON-Dateien. Ohne diesen Schritt laeuft Modul 4
durch und loest nichts auf, ohne zu scheitern.
Erstbestand von Hand Der erste Lauf laedt 2,2 GB Modellgewichte und
kodiert den gesamten Korpus, ~17 min je 5000
Items. Aus dem Timer heraus liefe er in
TimeoutStartSec=1800.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NupWEBPzsyohVPG47HsTz8
41 lines
1.5 KiB
Desktop File
41 lines
1.5 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.
|
|
#
|
|
# Beide muessen aus dem Container heraus aufloesbar sein: der Rechnername in
|
|
# DATABASE_URL darf nicht 127.0.0.1 sein, sondern host.containers.internal.
|
|
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=pasta \
|
|
--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
|