solectrus / hosting

Step-by-stypes guides for installing and hosting Solectrus
9 stars 4 forks source link

Update schlägt fehl. Timeout #18

Closed nk-henning closed 1 year ago

nk-henning commented 1 year ago

Ahoi!

Es kommt, wie es kommen musste: ich habe mich durch die sehr gute Anleitung gehangelt und nun galt es, das System zu updaten.

Ich folgte den Anweisungen:

ssh root@[YOUR-SERVER-IP-ADDRESS]
cd solectrus

docker-compose pull
docker-compose up -d

Solectrus liegt bei mir aus nicht mehr nachvollziehbaren Gründen auf root/Volume1/docker/solectrus.

docker-compose pull läuft fehlerfrei durch.

Pulling influxdb           ... done
Pulling db                 ... done
Pulling redis              ... done
Pulling app                ... done
Pulling senec-collector    ... done
Pulling forecast-collector ... done

docker-compose up -d lieferte mir folgende Ergebnisse:

Recreating solectrus_redis_1              ... done
Recreating solectrus_influxdb_1 ... done
Recreating solectrus_db_1                 ... done
Recreating solectrus_forecast-collector_1 ... done
Recreating solectrus_senec-collector_1    ... 
Recreating solectrus_app_1                ... 
ERROR: for solectrus_senec-collector_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
ERROR: for solectrus_app_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
ERROR: for senec-collector  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
ERROR: for app  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).

Ich bin etwas ratlos, was das Problem verursacht und wie ich es löse. Muss ich docker-compose pull erneut ausführen oder teste ich nur noch an der Stelle docker-compose up -d weiter?

Besten Dank für eine Handreichung.

Henning

ledermann commented 1 year ago

Seltsam, diese Fehlermeldung ist mir noch nicht begegnet. Steht der Server möglicherweise mit anderen Dingen so unter Last, dass das Starten weiterer Container sehr langsam ist? Ist genügend RAM frei? Besteht das Problem auch noch nach einem Reboot? Um was für ein Gerät handelt es sich?

Das Holen der Images (pull) scheint geklappt zu haben (kann geprüft werden mit docker images). Probleme bereitet hingegen der Neustart der Container.

Bei mir dauert das docker compose up -d auf einem kleinen Raspi nur 15s, also deutlich unter dem Default-Timeout von 60s. Vielleicht mal das Timeout hochsetzen (wie in der Fehlermeldung vorgeschlagen):

COMPOSE_HTTP_TIMEOUT=180 docker compose up -d
nk-henning commented 1 year ago

Moin,

ich habe eine Synology DiscStation DS 718+ mit 6GB WD Red. Die macht eigentlich nichts, sondern nur Solectrus und TimeMachine.

Das Ergebnis von docker images

REPOSITORY                             TAG            IMAGE ID       CREATED        SIZE
redis                                  alpine         5130e5ba7d24   2 weeks ago    29.9MB
postgres                               14-alpine      09b26fe01cdd   4 weeks ago    242MB
ghcr.io/solectrus/forecast-collector   latest         af1931033f36   5 weeks ago    76.4MB
ghcr.io/solectrus/senec-collector      latest         d521d1b5231c   5 weeks ago    94.5MB
ghcr.io/solectrus/solectrus            0.6            97c63d9cc84f   5 months ago   125MB
influxdb                               2.4.0-alpine   163f83b4e784   5 months ago   347MB
ghcr.io/solectrus/senec-collector      <none>         ea9790016da8   5 months ago   88.8MB
ghcr.io/solectrus/forecast-collector   <none>         60690ebe6e5f   5 months ago   88.7MB
ghcr.io/solectrus/solectrus            <none>         a212ef5f0c24   6 months ago   132MB
influxdb                               <none>         a00fe993fbb4   6 months ago   347MB
postgres                               <none>         a762fe0bf572   7 months ago   216MB
redis                                  <none>         9192ed4e4955   7 months ago   28.5MB

Ich habe die Kommandos nochmal ausgeführt:

**root@DiskStationNK:/volume1/docker/solectrus# docker-compose pull**
Pulling influxdb           ... done
Pulling db                 ... done
Pulling redis              ... done
Pulling app                ... done
Pulling senec-collector    ... done
Pulling forecast-collector ... done

**root@DiskStationNK:/volume1/docker/solectrus# docker-compose up -d**
Recreating solectrus_influxdb_1 ... 
solectrus_db_1 is up-to-date
Recreating solectrus_influxdb_1 ... done
Recreating solectrus_forecast-collector_1 ... done
Recreating solectrus_senec-collector_1    ... done
Recreating solectrus_app_1                ... done
root@DiskStationNK:/volume1/docker/solectrus# 

CPU lag bei 4%, RAM bei 35%.

Aber eine neue Version (aktuell habe ich die 0.6.1) liegt mir leider nicht vor.

ledermann commented 1 year ago

Ok, das heißt, jetzt gab es keinen Timeout mehr?

Bezüglich der Version: Vermutlich wird in Deiner docker-compose.yml die Version 0.6 für das SOLECTRUS-Image festgeschrieben. Ändere das einfach auf latest, also so:

...
image: ghcr.io/solectrus/solectrus:latest
...

Dann nochmal docker-compose pull && docker-compose up -d und fertig :-)

nk-henning commented 1 year ago

Sehr laienhafte Frage: wo finde ich die docker-compose.yml? Ich wäre davon ausgegangen, die auf der DiscStation im Dateisystem zu sehen - aber unter /docker liegt halt nur /solectrus mit seinen Unterordnern.

ledermann commented 1 year ago

Genau da liegt sie auch. Du hast sie ganz oben mit dem Befehl "docker compose pull" auch benutzt. Über das UI der Synology kannst Du zum Editieren den integrierten Editor verwenden:

  1. DiskStatation-UI im Browser öffnen
  2. FileStation-Icon klicken, Ordner /solectrus heraussuchen, Datei docker-compose.yml über rechte Maustaste mit Texteditor öffnen, bearbeiten, speichern.
  3. Anschließend zurück zum SSH login und pull/up ausführen
nk-henning commented 1 year ago

Ok, ich hab im Hauptverzeichnis /Docker geschaut. Alles gefunden, angepasst und nochmal neu ausgeführt:

Update erfolgreich.

Ich dokumentiere den Workflow mal für´s nächste Mal & Sage: vielen herzlichen Dank!

ledermann commented 1 year ago

Top! 👍

Alternativ: WatchTower installieren und Updates kommen zukünftig automatisch rein: https://github.com/containrrr/watchtower