readarchive als eigenes Stack statt Profil im Haupt-Stack
readarchive ist kein Dauerdienst, sondern ein Lauf mit Parametern. Als Service mit profiles: ["tools"] liess er sich aus Portainer gar nicht starten - eine Profil-Auswahl gibt es dort nicht, und ein Gegenstueck zu "docker compose run" ebenso wenig. Jetzt steht er in noisesensors/readarchive-stack.yml. Dieselbe Datei bedient beide Wege: auf der Kommandozeile mit Argumenten via "docker compose -f readarchive-stack.yml run --rm readarchive ...", im Portainer als eigenes Stack mit den Parametern als Environment-Variablen (readFromcsv.js liest -s/-e/-t/-d auch aus START/END/TYP/DBASE). - eigener Projektname "name: readarchive", damit die Datei auf der Kommandozeile nicht das Projekt des Haupt-Stacks uebernimmt - Netz des Haupt-Stacks als external eingebunden - README: readarchive-Abschnitt neu, Profil-Hinweis in der Update-Anleitung ersetzt, Datei in Struktur und Dateiliste ergaenzt - .env.example: Block fuer START/END/TYP/DBASE - noise.tgz neu gepackt, damit die Datei mit ausgeliefert wird Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Eigenstaendiges Stack fuer readarchive - kein Dauerdienst, sondern ein Lauf
|
||||
# mit Parametern. Liest rueckwirkend die Tagesdateien von
|
||||
# archive.sensor.community ein, um Luecken zu fuellen.
|
||||
#
|
||||
# Dieselbe Datei dient beiden Wegen:
|
||||
#
|
||||
# Kommandozeile (Parameter als Argumente):
|
||||
# docker compose -f readarchive-stack.yml run --rm readarchive \
|
||||
# -t noise -s 2026-07-22 -e 2026-07-23 -d influx
|
||||
#
|
||||
# Portainer (Parameter als Environment-Variablen des Stacks):
|
||||
# START=2026-07-22 END=2026-07-23 TYP=noise DBASE=influx
|
||||
# -> Deploy the stack; der Container laeuft einmal durch und endet.
|
||||
# Fuer den naechsten Zeitraum die Variablen aendern und
|
||||
# "Update the stack".
|
||||
#
|
||||
# readFromcsv.js liest jeden Parameter auch aus einer Env-Variablen:
|
||||
# -s = START (Default: gestern), -e = END (Default: Startdatum + 1 Tag,
|
||||
# exklusiv), -t = TYP (Default: noise), -d = DBASE (Default: both).
|
||||
#
|
||||
# Voraussetzungen:
|
||||
# * Der Haupt-Stack laeuft, denn dessen Netz wird hier eingebunden. Der Name
|
||||
# ist <stack-name>_default (im Portainer unter Networks nachsehen).
|
||||
# * Zugangsdaten und LOCALDIR wie im Haupt-Stack - auf der Kommandozeile aus
|
||||
# einer .env neben dieser Datei, im Portainer aus den Stack-Variablen.
|
||||
# * Auch mit DBASE=influx wird Mongo gebraucht (dort liegen die Metadaten der
|
||||
# Sensoren), das Netz muss also beide erreichen.
|
||||
|
||||
# Eigener Projektname, damit dieses Compose-File auf der Kommandozeile nicht
|
||||
# das Projekt des Haupt-Stacks uebernimmt (sonst "orphan containers" und ein
|
||||
# versehentliches "down" trifft den ganzen Stack). Portainer setzt den
|
||||
# Projektnamen ueber den Stack-Namen und ueberschreibt diesen Wert.
|
||||
name: readarchive
|
||||
|
||||
services:
|
||||
readarchive:
|
||||
image: docker.citysensor.de/readarchive
|
||||
environment:
|
||||
MONGOHOST: mongodb
|
||||
INFLUXHOST: influxdb
|
||||
MONGOAUTH: "true"
|
||||
MONGOUSRP: ${MONGO_ROOT_USERNAME}:${MONGO_ROOT_PASSWORD}
|
||||
INFLUXTOKEN: ${DOCKER_INFLUXTOKEN}
|
||||
# leer lassen = Default (siehe oben)
|
||||
START: ${START:-}
|
||||
END: ${END:-}
|
||||
TYP: ${TYP:-noise}
|
||||
DBASE: ${DBASE:-influx}
|
||||
volumes:
|
||||
- ${LOCALDIR}/noisesensors/log:/var/log
|
||||
- ${LOCALDIR}/noisesensors/data/readarchive:/opt/app/readarchive/data
|
||||
# Einmal-Lauf: nach dem Ende nicht neu starten. Exit-Code != 0 bedeutet,
|
||||
# dass Influx-Writes fehlgeschlagen sind (Details im Log).
|
||||
restart: "no"
|
||||
networks:
|
||||
- noise
|
||||
|
||||
networks:
|
||||
noise:
|
||||
external: true
|
||||
name: noisesensors_default
|
||||
Reference in New Issue
Block a user