Dockerimage

Solaranzeige und Docker
Alles was mit der Docker Version zu tun hat.

Moderatoren: Ulrich, DeBaschdi

Benutzeravatar
mr.big
Beiträge: 586
Registriert: Mi 7. Sep 2022, 12:12
Wohnort: tief im Osten...
Hat sich bedankt: 14 Mal
Danksagung erhalten: 115 Mal

Re: Dockerimage

Beitrag von mr.big »

Frage: wie kann ich ein python script in einem dockercontainer automatisch starten lassen?

ChatGPT sagt dazu:


Um ein Python-Skript automatisch in einem Docker-Container zu starten, können Sie die CMD-Anweisung in Ihrem Dockerfile verwenden. Diese Anweisung legt den Befehl und die Argumente fest, die beim Start des Containers ausgeführt werden sollen. Hier ist ein Beispiel:

Dockerfile

Code: Alles auswählen

Copy code
FROM python:3.8

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "your_script.py"]
In diesem Beispiel wird das Python-Skript your_script.py automatisch gestartet, wenn der Container ausgeführt wird. Sie können den Befehl in der CMD-Anweisung entsprechend Ihren Anforderungen anpassen.

Nachdem Sie das Dockerfile erstellt haben, können Sie das Docker-Image erstellen und einen Container basierend auf diesem Image starten. Das Python-Skript wird automatisch gestartet, wenn der Container läuft.

Stellen Sie sicher, dass Sie die erforderlichen Berechtigungen für das Skript im Container setzen, und überprüfen Sie die Logs, um sicherzustellen, dass Ihr Skript wie erwartet ausgeführt wird.

Eventuell hilft das ja weiter! ;-)

Mikosch66
Beiträge: 25
Registriert: Do 10. Aug 2023, 19:35
Danksagung erhalten: 2 Mal

Re: Dockerimage

Beitrag von Mikosch66 »

Mmmhhh, ich denke, die Settings eines Dockercontainer auf dem Synology NAS kann ich zwar exportieren und dort sehe ich auch die CMD Option. allerdings muss ich zum Importieren den "alten" Container löschen.

Ich habe nur die Befürchtung, dass dann auch meine Solaranzeige und die Daten in der InfluxDB weg sind....

takealug-solaranzeige....json.

Code: Alles auswählen

{
   "CapAdd" : null,
   "CapDrop" : null,
   "cmd" : "",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : true,
   "enable_service_portal" : false,
   "enabled" : true,
   "env_variables" : [

Grüße,
Mikosch

7.47 kWP mit 18 JA Solar Jam54S3-415 MR
Fronius GEN24Plus 8.0 + BYD HVS 10,2 + Smart Meter TS65A-3

Solaranzeige auf Synology NAS (Docker), Multiregler Config.

Mikosch66
Beiträge: 25
Registriert: Do 10. Aug 2023, 19:35
Danksagung erhalten: 2 Mal

Re: Dockerimage

Beitrag von Mikosch66 »

Meine Übergangslösung ist: Nach dem Start mit Putty anzumelden und das Skript zu spawnen, läuft dann halt nur bis zum nächsten Neustart, aber eigentlich läuft es immer durch....
Grüße,
Mikosch

7.47 kWP mit 18 JA Solar Jam54S3-415 MR
Fronius GEN24Plus 8.0 + BYD HVS 10,2 + Smart Meter TS65A-3

Solaranzeige auf Synology NAS (Docker), Multiregler Config.

TriX15GlasGlas

Re: Dockerimage

Beitrag von TriX15GlasGlas »

Solaranzeige ist ja nun in der 6er Version verfügbar, sind die Anpassungen am Docker aufwending :?:

Andreas_SunPower
Beiträge: 4
Registriert: So 31. Okt 2021, 08:57
Hat sich bedankt: 1 Mal

Re: Dockerimage

Beitrag von Andreas_SunPower »

Ich habe Probleme nach dem update meines Raspi.

Ich kann weder lokal auf dem Raspi noch von ausen auf die Grafana Oberfläche zugreifen.
Die Browser zeigen "Fehler Verbindung fehlgeschlagen" anwenn ich auf port 3000 zugreifen möchte.

Das Solaranzeige log sieht erstmal unverdächtig aus:

Code: Alles auswählen

Starting Services...
Starting influxdb...
influxdb process was started [ OK ]
Starting Grafana Server:Already running..
Starting Apache httpd web server: apache2.
Starting periodic command scheduler: cron.

###############################################################################
# If u Like my Work, please Donate https://paypal.me/DeBaschdi Thank You ! :) #
###############################################################################

#########################################################################
# Image Version 0.1.2                                                  #
# Running Solaranzeige Software Version 4.9.9b  [32Bit]    update    Dezember  2023 #
#########################################################################

03.01. 15:42:08 |----------------   Start  kostal_plenticore.php    --------------- 
03.01. 15:42:08    -Kostal: 192.168.2.137 Port: 1502 GeräteID: 71
03.01. 15:42:09    -Curl Fehler[2]! Daten nicht zur lokalen InfluxDB solaranzeige gesendet! Curl ErrNo. 7
03.01. 15:42:10    -InfluxDB Fehler -> nochmal versuchen.
03.01. 15:42:10    -Curl Fehler[2]! Daten nicht zur lokalen InfluxDB solaranzeige gesendet! Curl ErrNo. 7
03.01. 15:42:10    -InfluxDB Fehler -> nochmal versuchen.
03.01. 15:43:04    -Schleife 1 Ausgang...
03.01. 15:43:04    -OK. Datenübertragung erfolgreich.
03.01. 15:43:04 |----------------   Stop   kostal_plenticore.php    --------------- 
03.01. 15:44:01 |----------------   Start  kostal_plenticore.php    --------------- 
03.01. 15:44:01    -Kostal: 192.168.2.137 Port: 1502 GeräteID: 71
03.01. 15:44:02 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
03.01. 15:44:57    -Schleife 1 Ausgang...
03.01. 15:44:57    -OK. Datenübertragung erfolgreich.
.....
Solaranzeige auf port 8080 läuft jedoch und holt sich daten vom Wechselrichter

Code: Alles auswählen

Solaranzeige.de

Live Log

03.01. 15:50:02 -Alle 10 Minuten werden die Statistikdaten übertragen.
03.01. 15:50:02 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
03.01. 15:50:34 WET-Wetterdaten werden abgeholt.
03.01. 15:50:34 WET-Ort: Landkreis Rottweil, 48.25 N, 8.5 O, ID: 3214110
03.01. 15:50:34 WET-Lokal: OK. Daten zur InfluxDB gesendet.
03.01. 15:50:34 WET-Prognoseeinstellung: keine
03.01. 15:50:34 WET-Wetterprognose ausgeschaltet.
03.01. 15:50:34 |------------------- Stop wetterdaten.php ---------------------
03.01. 15:50:57 -Schleife 1 Ausgang...
03.01. 15:50:57 -OK. Datenübertragung erfolgreich.
03.01. 15:50:57 |---------------- Stop kostal_plenticore.php ---------------
03.01. 15:51:01 |---------------- Start kostal_plenticore.php ---------------
03.01. 15:51:01 -Kostal: 192.168.2.137 Port: 1502 GeräteID: 71
03.01. 15:51:02 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
03.01. 15:51:57 -Schleife 1 Ausgang...
03.01. 15:51:57 -OK. Datenübertragung erfolgreich.
03.01. 15:51:57 |---------------- Stop kostal_plenticore.php ---------------
03.01. 15:52:01 |---------------- Start kostal_plenticore.php ---------------
03.01. 15:52:01 -Kostal: 192.168.2.137 Port: 1502 GeräteID: 71
03.01. 15:52:02 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
Auch ist ein Dienst auf port 3000 aktiv wenn ich netstat richtig interpretiere.

Code: Alles auswählen

netstat -tulpn
(Es konnten nicht alle Prozesse identifiziert werden; Informationen über
nicht-eigene Processe werden nicht angezeigt; Root kann sie anzeigen.)
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:9443            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      -
....
Das grafana.log hat folgende Info

Code: Alles auswählen

pi@AH-Pi4:~ $ tail -f -n100 ./Data/solaranzeige/www/log/grafana/grafana.log
t=2024-01-03T12:13:29+0100 lvl=eror msg="Data proxy error" logger=data-proxy-log userId=1 orgId=1 uname=admin path=/api/datasources/proxy/2/query remote_addr=192.168.2.141 referer="http://192.168.2.133:3000/d/99Kostal1/kostal-plenticore?orgId=1&refresh=1m" error="httputil: ReverseProxy read error during body copy: read tcp 127.0.0.1:34348->127.0.0.1:8086: use of closed network connection"
t=2024-01-03T12:13:29+0100 lvl=eror msg="Request error" logger=context userId=1 orgId=1 uname=admin error="net/http: abort Handler"
Ich freue mich auf jegliche Hilfe/Hinweise zum debuggen.

Update:
Inzwischen läuft das ganze wieder. Warum weiss ich nicht genau.

Ich habe die influxdb gesichert um mich aufs plattmachen vorzubereiten.

Code: Alles auswählen

sudo docker exec -ti Solaranzeige /bin/bash

influxd backup -portable -database solaranzeige /var/lib/influxdb/backup/Solaranzeige_db
influxd backup -portable -database steuerung /var/lib/influxdb/backup/Steuerung_db
sudo influxd backup -portable -database _internal /var/lib/influxdb/backup/_internal_db
Danach habe ich probiert den grafana-server händisch neu zu starten das ging nicht.

Code: Alles auswählen

root@dc1e0b21f317:/# service grafana-server restart
Stopping Grafana Server: Grafana Server is not running but pid file exists, cleaning up.
Starting Grafana Server: failed!
Danach habe ich den Container einmal neu gestartet und versucht den grafana-server nochmal neu zu starten... voila es ging

Code: Alles auswählen

root@dc1e0b21f317:/var/lib/grafana# service grafana-server restart
Stopping Grafana Server:.
Starting Grafana Server:.

UNCLE03
Beiträge: 16
Registriert: Di 9. Mär 2021, 18:04
Hat sich bedankt: 9 Mal

Re: Dockerimage

Beitrag von UNCLE03 »

Gude,
erst einmal super docker image vielen Dank.

Jetzt würde ich gerne meine 20 Tasmota Steckdosen da hinzufügen.
Da scheidet ja Multiregler erst einmal aus.

Also müsste es ja mit der Variante php Script gehen wie hier viewtopic.php?t=434&start=50

Da stimmen aber wohl die Pfade nicht,bzw. bekomme es nicht zum laufen.

Log sagt:
25.02. 23:42:06 -Daten nicht zur lokalen InfluxDB gesendet! info: array (
'url' => 'http://localhost/write?db=solaranzeige&precision=s',
'content_type' => 'application/json',
'http_code' => 400,
'header_size' => 421,
'request_size' => 1127,
usw


Wer könnte helfen ?

Gruß

DeBaschdi
Beiträge: 300
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 14 Mal
Danksagung erhalten: 55 Mal

Re: Dockerimage

Beitrag von DeBaschdi »

Wieso Willst du 20 MQTT Steckdosen in die Solaranzeigen DB schreiben lassen ?

Ich würde das anders angehen, weitere DB, + Openhab

MR42HH
Beiträge: 1
Registriert: Fr 6. Nov 2020, 14:58

Re: Dockerimage

Beitrag von MR42HH »

Renix hat geschrieben:
Di 28. Nov 2023, 18:21
Ich habe ein Fork von deiner Github Repo erstellt und etwas die Readme umgeschrieben fürs QNAP
Moin Renix,
Wo finde ich denn dein Readme? Ich möchte auch gern solaranzeige auf meiner QNAP laufen lassen, eine Anleitung "für Doofe" welche Verzeichnisse ich wohin umbiegen muss, um sie persistent zu haben würde mir schon weiterhelfen.

Viele Grüße,
Mirko

Benutzeravatar
mdkeil
Beiträge: 436
Registriert: So 12. Sep 2021, 20:40
Hat sich bedankt: 11 Mal
Danksagung erhalten: 24 Mal

Re: Dockerimage

Beitrag von mdkeil »

MR42HH hat geschrieben:
Mo 25. Mär 2024, 13:40
[..] eine Anleitung "für Doofe" welche Verzeichnisse ich wohin umbiegen muss, um sie persistent zu haben würde mir schon weiterhelfen.
steht doch eigentlich alles auf github: https://github.com/DeBaschdi/docker.solaranzeige

Code: Alles auswählen

-v {SOLARANZEIGE_STORAGE}:/solaranzeige \
  -v {INFLUXDB_STORAGE}:/var/lib/influxdb \
  -v {GRAFANA_STORAGE}:/var/lib/grafana \
  -v {PVFORECAST_STORAGE}:/pvforecast \
  -v {WWW_STORAGE}:/var/www \

Code: Alles auswählen

Volume			Optional	Description
SOLARANZEIGE_STORAGE	no		The directory to persist /solaranzeige with Crontab Settings to
INFLUXDB_STORAGE	no		The directory to to persist /var/lib/influxdb to
GRAFANA_STORAGE		no		The directory to to persist /var/lib/grafana to
PVFORECAST_STORAGE	no		The directory to to persist /pvforecast to
WWW_STORAGE		no		The directory to to persist /var/www to

When passing volumes please replace the name including the surrounding curly brackets with existing absolute paths with correct permissions.

Note: INFLUXDB_STORAGE persist the Database for Grafana. 
Note: GRAFANA_STORAGE persist Grafana settings and Dashboards. 
Note: WWW_STORAGE persist logfiles and all script-files from solaranzeige.de. 
Note: PVFORECAST_STORAGE persist PVForecast data from https://github.com/StefaE/PVForecast
IBN: 07/2021
Fronius Symo : 13.2kWp S 45° + 3.96 kWp S 15°
Fronius Primo : 2.97 kWp N 15°
Speicher: 14,3 kWh LiFePO4 (EEL) + Seplos BMS @ Victron MP-II 48/5000
Wallbox: 11kW echarge Hardy Barth Cpμ2 Pro
######
Tibber-Invite (100% Öko-Strom + 50€ Bonus)

zinnik
Beiträge: 3
Registriert: Mi 20. Apr 2022, 08:45

Re: Dockerimage

Beitrag von zinnik »

Hallo habe jetzt auch mal eine frage.

Ich hatter das ganze schon auf mein Qnap laufen als Docker und nie Probleme. Seit 2022 lief es ohne Probleme aufeinmal keine daten mehr von der Influx.

Als entschloss ich mich den Container neu zu erstellen aber irgendwie bekomme ich es nicht mehr hin.
Auf meiner Qnap hat der Admin die UID:0 und GID:0
Der Benutzer Sven UID:1000 und GID:100 oder GID:0
Alle gruppen funktionieren nicht und IDs funktionieren nicht. Auch im Privileg Modus geht es nicht.
Auch kein Leagcy Image ich bin am Verzweifeln.

hier sind meine Fehlermeldungen

Code: Alles auswählen

Current default time zone: 'Europe/Berlin'
Local time is now:      Fri May 17 11:45:29 CEST 2024.
Universal Time is now:  Fri May 17 09:45:29 UTC 2024.

users:x:100:
##################################
# Initial Setup for Solaranzeige #
##################################

create necessary files/directories...

downloading Main Program...
Cloning into 'solar_config'...
fatal: unable to access 'https://github.com/DeBaschdi/solar_config.git/': Could not resolve host: github.com
cp: cannot stat '/tmp/git/solar_config/html': No such file or directory
cp: cannot stat '/tmp/git/solar_config/www': No such file or directory
cp: cannot stat '/tmp/git/solar_config/solaranzeige': No such file or directory
cp: cannot stat '/tmp/git/solar_config/influxdb': No such file or directory
cp: cannot stat '/tmp/git/solar_config/grafana': No such file or directory

Update wird gestartet .....


Installing PVForecast...
Cloning into 'PVForecast'...
'/tmp/git/PVForecast/PVForecast/__init__.py' -> '/pvforecast/PVForecast/__init__.py'
'/tmp/git/PVForecast/PVForecast/co2signal.py' -> '/pvforecast/PVForecast/co2signal.py'
'/tmp/git/PVForecast/PVForecast/csvinput.py' -> '/pvforecast/PVForecast/csvinput.py'
'/tmp/git/PVForecast/PVForecast/dbrepository.py' -> '/pvforecast/PVForecast/dbrepository.py'
'/tmp/git/PVForecast/PVForecast/dwdforecast.py' -> '/pvforecast/PVForecast/dwdforecast.py'
'/tmp/git/PVForecast/PVForecast/entsoe.py' -> '/pvforecast/PVForecast/entsoe.py'
'/tmp/git/PVForecast/PVForecast/forecast.py' -> '/pvforecast/PVForecast/forecast.py'
'/tmp/git/PVForecast/PVForecast/forecast_manager.py' -> '/pvforecast/PVForecast/forecast_manager.py'
'/tmp/git/PVForecast/PVForecast/influx.py' -> '/pvforecast/PVForecast/influx.py'
'/tmp/git/PVForecast/PVForecast/openweather.py' -> '/pvforecast/PVForecast/openweather.py'
'/tmp/git/PVForecast/PVForecast/pvmodel.py' -> '/pvforecast/PVForecast/pvmodel.py'
'/tmp/git/PVForecast/PVForecast/solcast.py' -> '/pvforecast/PVForecast/solcast.py'
'/tmp/git/PVForecast/PVForecast/visualcrossing.py' -> '/pvforecast/PVForecast/visualcrossing.py'
chmod: cannot access '/solaranzeige/setup': No such file or directory
chmod: cannot access '/solaranzeige/statusmail': No such file or directory
chmod: cannot access '/solaranzeige/support': No such file or directory

Installing Grafana Plugins...
✔ Downloaded and extracted fetzerch-sunandmoon-datasource v0.3.0 zip successfully to /var/lib/grafana/plugins/fetzerch-sunandmoon-datasource

Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary.

✔ Downloaded and extracted briangann-gauge-panel v2.0.1 zip successfully to /var/lib/grafana/plugins/briangann-gauge-panel

Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary.


##############################################################################################
# Initial Setup for Solaranzeige completed, please run /solaranzeige/setup for Configuration #
# example : docker exec -ti Solaranzeige /solaranzeige/setup                                 #
##############################################################################################


und hier meine Docker Compose

Code: Alles auswählen

version: "3"
services:
  solaranzeige:
    image: takealug/solaranzeige:latest
    privileged: true
    container_name: Solaranzeige
    mac_address: 02:42:66:A8:57:BD
    networks:
      qnet-static-eth0-79e6cc:
          ipv4_address: 192.168.1.93
    environment:
      ServerIP: 192.168.1.93
      PUID: 1000
      PGID: 100
      TIMEZONE: Europe/Berlin
      UPDATE: yes
      MOSQUITTO: yes
      INFLUXDB: yes
    volumes:
      - /home/dockeruser/solaranzeige/data/solaranzeige:/solaranzeige
      - /home/dockeruser/solaranzeige/data/pvforecast:/pvforecast
      - /home/dockeruser/solaranzeige/data/influx:/var/lib/influxdb
      - /home/dockeruser/solaranzeige/data/grafana:/var/lib/grafana
      - /home/dockeruser/solaranzeige/data/www:/var/www
    tmpfs:
      - /var/log
      - /tmp
    ports:
      - 3000:3000
      - 1883:1883
      - 80:80
    restart: unless-stopped
networks:
  qnet-static-eth0-79e6cc:
    external: true    

Ich wäre dankbar wenn jemand ein Hinweis für mich hat. Oder passt was an dem Image nicht?

Antworten

Zurück zu „Docker Container“