dsmr-reader-docker icon indicating copy to clipboard operation
dsmr-reader-docker copied to clipboard

Postgresql client Upgrade (pg_dump)

Open sanderdw opened this issue 1 year ago β€’ 3 comments

Request

Hey Bram, kan je in de volgende versie wellicht de Postgresql client versie upgraden? Op het het Home Assistant ecosysteem wordt vaak de Timescale addon gebruikt als de Postgres DB server en die zit op 16.2 waarmee de pg_dump tool in het image er niet meer mee werkt (15.6).

Additional information

https://community.home-assistant.io/t/dsmr-reader-add-on-for-home-assistant/279087/410

sanderdw avatar Apr 02 '24 08:04 sanderdw

Hi Sander, als het beschikbaar is in de laatste Alpine image, dan kan ik dat zeker. Maar wanneer PG16 client nog niet in de 3.19 Alpine image beschikbaar is, dan kan ik het helaas niet aanpassen. Dan zal dat wss in Alpine 3.20 komen.

Ik ga er vandaag even mee aan de slag.

xirixiz avatar Apr 04 '24 05:04 xirixiz

Ik weet het weer, ik moest even mijn geheugen opfrissen :)

Ik ben met een nieuwe release bezig, waarbij een aantal grote wijzigingen zullen worden doorgevoerd,

  • Efficienter build proces
  • Alpine 3.19 met PG16 client ;)
  • Overstappen naar de "nieuwe" S6-overlay.

Alles werkt eingelijk, maar wanneer de container gestart wordt dan gaat het nog mis op S6 overlay. Wss zie ik iets over het hoofd en is het eenvoudig op te lossen. Ik zal er wat tijd aan spenderen. Ik kan zelf geen DSMR reader Docker gebruiken op dit moment. Kan ik jou vragen om te testen wanneer ik een nieuwe pre_release image gemaakt heb?

Source: https://github.com/xirixiz/dsmr-reader-docker/tree/pre_release

xirixiz avatar Apr 04 '24 05:04 xirixiz

Deze docker image kan je testen @sanderdw or @Alfagek:

ghcr.io/xirixiz/dsmr-reader-docker:development

Mogelijk gaat er nog iets mis met het starten van de processen, dan graag proberen zo goed mogelijk te omschrijven wat er mis gaat, of wat er lijkt mis te gaan. Volgens mij moet het eenvoudig zijn op te lossen, maar mogelijk is het issue al opgelost door een aanpassing die ik nog heb doorgevoerd ;)

xirixiz avatar Apr 04 '24 07:04 xirixiz

image Bouwen ging goed maar kreeg deze fout, is dat ook wat je bedoelde?

sanderdw avatar Apr 10 '24 13:04 sanderdw

Klopt, maar er was eerder een andere error. Ik heb zojuist de code bijgewerkt en de build pipeline gestart. Je hoeft dus niet zelf te bouwen, maar je kan gewoon de development image testen.

Wachten tot deze pipeline klaar is: https://github.com/xirixiz/dsmr-reader-docker/actions/runs/8633228373 En dan image ghcr.io/xirixiz/dsmr-reader-docker:development gebruiken.

xirixiz avatar Apr 10 '24 14:04 xirixiz

Ik moet altijd een stukje bouwen omdat er specifieke Home Assistant Addon code nodig is.

Thanks, ik ga hem dan nog wel een keer aftrappen.

sanderdw avatar Apr 10 '24 14:04 sanderdw

Helaas nog hetzelfde issue, kan het hier mee te maken hebben? https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2765

sanderdw avatar Apr 10 '24 17:04 sanderdw

Hmm, dat is vreemd. Ik kreef de melding ook, maar nu niet meer. Ik krijg alleen een foutmelding daarna omdat mijn config niet compleet is. Weet je het zeker dat je de pre-release branch gebruikt?

image

xirixiz avatar Apr 10 '24 18:04 xirixiz

IMG_9462 Komt het misschien door dat ik in Bram zijn screenshot S6-RC zie staan en ik bij de β€œoude” versie S6-INIT heb staan @sanderdw ?

Probeer alleen een beetje mee te denken. Jullie zijn beter in het programmeren dan dat ik ben πŸ˜‰

Alfagek avatar Apr 10 '24 18:04 Alfagek

@Alfagek klopt, en het meedenken wordt zeker gewaardeerd πŸ˜„.

S6-overlay v2 is al vrij oud (s6-init) en ben daarom overgestapt op S6-overlay v3 (s6-rc). De config kent een andere structuur, en wellicht botst dat met HASS. Mogelijk zit HASS nog op S6-overlay v2.

@sanderdw Kan je mss wat meer details geven over de werking icm hassio? Ik kan morgen de boel hier wel even aan elkaar knopen en iig even checken of DSMR Reader Docker in pre_release mode werkt. Wanneer dat werkt, dan weten we iig dat het iets met s6-overlay te maken heeft (ook al is dat al vrij zeker). Maar omdat ik het nu niet standalone kan testen (dus zonder de integratie van sander), weet ik niet of de pre_release image naar behoren werkt.

xirixiz avatar Apr 10 '24 18:04 xirixiz

Weet je zeker dat het image bijgewerkt is (tag :development)? Dat zie ik hier namelijk niet terug: https://github.com/xirixiz/dsmr-reader-docker/pkgs/container/dsmr-reader-docker

Verder moet ik dit even testen: https://developers.home-assistant.io/blog/2022/05/12/s6-overlay-base-images/#minimum

sanderdw avatar Apr 10 '24 18:04 sanderdw

Dat is inderdaad ook bijzonder dat de tag niet is bijgewerkt. Check ik meteen even wat daar mis gaat. Uiteindelijk komen we er samen wel πŸ˜„

xirixiz avatar Apr 10 '24 18:04 xirixiz

Jullie zijn gewoon goed bezig πŸ‘πŸ»

Alleen sorry dat ik jullie alle 2 aan het β€œwerk” zet 🀣

Alfagek avatar Apr 10 '24 18:04 Alfagek

Oh en intussen (dus wel met de 'verouderde' tag) heeft de init optie het probleem oplost: image Echter moet ik wel de opzet veranderen zie ik (zie de error)

sanderdw avatar Apr 10 '24 18:04 sanderdw

@sanderdw gelukkig! Ik denk dat ik de pipeline ook gefixt heb. Volgens mij had ik het zo gemaakt dat alleen de development branch ook een development tag maakt.... was ik even vergeten. Een nieuwe release is dus in de maak.

In de source code kan je de opbouw zien van de s6-overlay v3, dan heb je de error zo gefixt denk ik. https://github.com/xirixiz/dsmr-reader-docker/tree/main/rootfs

Edit: ik heb liggen slapen denk ik. Ik dacht echt dat ik de pre_release branch aan het bouwen was, maar ik heb alleen maar de main branch gebruikt om een nieuwe latest te bouwn πŸ˜–

xirixiz avatar Apr 10 '24 19:04 xirixiz

https://github.com/xirixiz/dsmr-reader-docker/pkgs/container/dsmr-reader-docker is bijgewerkt nu (development tag)

xirixiz avatar Apr 10 '24 19:04 xirixiz

Any update @sanderdw?

xirixiz avatar Apr 11 '24 17:04 xirixiz

Moest even inlezen in de s6 veranderingen en gelijk maar de legacy variant (cont-init.d) omgezet naar de nieuwe manier (s6-rc). Heb nu een gek probleempje met https://github.com/sanderdw/hassio-addons/blob/reader-1.11.1/dsmr_reader/Dockerfile#L36 want als ik hem met chmod executable maak dan kan hij hem niet vinden en als ik de chmod weglaat dan zegt ie permissions denied.

image

Een linux cat van /etc/s6-overlay/s6-rc.d/set-hassio-vars/run laat wel gewoon zien dat ie er is. Dus dit moet ik nog verder onderzoeken.

sanderdw avatar Apr 11 '24 20:04 sanderdw

@sanderdw ik heb de persmissies correct ingesteld alvorens het bouwen van een image, dat zou moeten werken. Dus dan wordt bij het bouwen van een image de file al met de juiste persmissies in de image gezet. Mss heb je dat al geprobeerd, maar ik weet dat het bij mij toen ik ermee aan de slag ging het issue verholpen heeft.

xirixiz avatar Apr 12 '24 05:04 xirixiz

Weer een stukje verder, met https://github.com/sanderdw/hassio-addons/commit/3193e6813c895148f754caaf078955322daa9fc1

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service set-hassio-vars: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
Home Assistant DSMR Reader Add-on - Release: 1.11.1
Home Assistant DSMR Reader Add-on - Configuring addon settings
Home Assistant DSMR Reader Add-on - Ingress enabled
s6-rc: info: service set-hassio-vars successfully started
s6-rc: info: service docker-entrypoint: starting

[ INFO ] DSMR Reader Reader release: 5.11.0

[ INFO ] DSMR Reader Reader Docker release: 2024.02.03

    ───────────────────────────────────────────────────
     ___  ___ __  __ ___   ___             _
    |   \/ __|  \/  | _ \ | _ \___ __ _ __| |___ _ _
    | |) \__ \ |\/| |   / |   / -_) _` / _` / -_) '_|
    |___/|___/_|  |_|_|_\ |_|_\___\__,_\__,_\___|_|
                 __           _
                |   \ ___  __| |_____ _ _
                | |) / _ \/ _| / / -_) '_|
                |___/\___/\__|_\_\___|_|

    DSMR-protocol reader, telegram data storage and
            energy consumption visualizer.

    ───────────────────────────────────────────────────
    User UID: 0
    User GID: 0
    ───────────────────────────────────────────────────
    

[ INFO ] Ensure permissions...

[ INFO ] Setting architecture requirements...

[ INFO ] ARM Architecture

[ INFO ] Verifying if the DSMR Reader web credential variables have been set...

[ INFO ] Verifying database connectivity to host: 77b2833f-timescaledb with port: 5432...
Connection to 77b2833f-timescaledb (172.30.33.3) 5432 port [tcp/postgresql] succeeded!

[ INFO ] Database connectivity successfully verified!

[ INFO ] Enabling IFrame...

[ INFO ] Running post configuration...
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, dsmr_api, dsmr_backend, dsmr_backup, dsmr_consumption, dsmr_datalogger, dsmr_dropbox, dsmr_frontend, dsmr_influxdb, dsmr_mindergas, dsmr_mqtt, dsmr_notification, dsmr_pvoutput, dsmr_stats, dsmr_weather, sessions
Running migrations:
  No migrations to apply.

559 static files copied to '/var/www/dsmrreader/static'.
Updating password of superuser "admin"
Deactivating any other existing superusers

[ INFO ] Checking for CLIENT CERTIFICATE AUTHENTICATION configuration...

[ INFO ] ENABLE_CLIENTCERT_AUTH is disabled, nothing to see here. Continuing...

[ INFO ] Checking for NGINX SSL configuration...

[ INFO ] ENABLE_NGINX_SSL is disabled, nothing to see here. Continuing...

[ INFO ] Checking for HTTP AUTHENTICATION configuration...

[ INFO ] ENABLE_HTTP_AUTH is disabled, nothing to see here. Continuing...

[ INFO ] Configuring DSMR Reader to run without the datalogger process. A remote datalogger (api_client) is required...

[ INFO ] Adding DSMRREADER_REMOTE_DATALOGGER_SLEEP to the DSMR Reader remote datalogger configuration...

[ INFO ] Adding DSMRREADER_LOGLEVEL to the DSMR Reader configuration...
s6-rc: info: service docker-entrypoint successfully started
s6-rc: info: service svc-dsmr-webinterface: starting
s6-rc: info: service svc-dsmr-remote-datalogger: starting
s6-rc: info: service svc-dsmr-datalogger: starting
s6-rc: info: service svc-dsmr-backend: starting
s6-rc: info: service svc-dsmr-webinterface successfully started
s6-rc: info: service svc-dsmr-remote-datalogger successfully started
s6-rc: info: service svc-dsmr-datalogger successfully started
Starting DSMR Reader - webinterface...
s6-notifyoncheck: fatal: s6-supervise not running.
s6-rc: info: service svc-dsmr-backend successfully started
s6-rc: info: service legacy-services: starting
Starting DSMR Reader - backend...
s6-notifyoncheck: fatal: s6-supervise not running.

Mijn pre Home Assistant code wordt nu dus correct uitgevoerd. Nu dus kijken waar de "s6-notifyoncheck: fatal: s6-supervise not running." vandaan komt, of is dit nog een bug die jij ook hebt?

sanderdw avatar Apr 13 '24 09:04 sanderdw

Mooi! Ik heb de "s6-notifyoncheck" er even uitgesloopt en een nieuwe build gestart voor development. Wanneer de build klaar is kan je testen met de nieuwe versie.

https://github.com/xirixiz/dsmr-reader-docker/actions/runs/8673537074

xirixiz avatar Apr 13 '24 12:04 xirixiz

[ INFO ] Adding DSMRREADER_REMOTE_DATALOGGER_SLEEP to the DSMR Reader remote datalogger configuration...

[ INFO ] Adding DSMRREADER_LOGLEVEL to the DSMR Reader configuration...
s6-rc: info: service docker-entrypoint successfully started
s6-rc: info: service svc-dsmr-webinterface: starting
s6-rc: info: service svc-dsmr-remote-datalogger: starting
s6-rc: info: service svc-dsmr-datalogger: starting
s6-rc: info: service svc-dsmr-backend: starting
s6-rc: info: service svc-dsmr-webinterface successfully started
s6-rc: info: service svc-dsmr-remote-datalogger successfully started
Starting DSMR Reader - webinterface...
s6-rc: info: service svc-dsmr-backend successfully started
s6-rc: info: service svc-dsmr-datalogger successfully started
s6-rc: info: service legacy-services: starting
Starting DSMR Reader - backend...
s6-rc: info: service legacy-services successfully started
[2024-04-13 16:52:06 +0200] [284] [INFO] Starting gunicorn 20.1.0
[2024-04-13 16:52:06 +0200] [284] [INFO] Listening at: unix:/tmp/gunicorn--dsmr_webinterface.socket (284)
[2024-04-13 16:52:06 +0200] [284] [INFO] Using worker: sync
[2024-04-13 16:52:06 +0200] [310] [INFO] Booting worker with pid: 310
Current logging level set to "ERROR". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html
pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 16.2; pg_dump version: 15.6
2024-04-13 16:52:09,589 ERROR    schedule     execute_scheduled_processes      39 | (AttributeError) dsmr_backup.services.backup.run errored: 'NoneType' object has no attribute 'read' 

Hij komt iets verder, denk een probleem aan jou kant?

sanderdw avatar Apr 13 '24 14:04 sanderdw

Klopt, ik zie dit:

pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 16.2; pg_dump version: 15.6

De client versie is nog 15.6. Ik kijk er even naar.

xirixiz avatar Apr 13 '24 15:04 xirixiz

https://github.com/xirixiz/dsmr-reader-docker/blob/a301628c3254ff070b0c405c472caa3d09c670eb/Dockerfile#L77

Build pipeline loopt weer πŸ˜„

xirixiz avatar Apr 13 '24 15:04 xirixiz

Loopt nu idd door.

[ INFO ] Adding DSMRREADER_LOGLEVEL to the DSMR Reader configuration...
s6-rc: info: service docker-entrypoint successfully started
s6-rc: info: service svc-dsmr-webinterface: starting
s6-rc: info: service svc-dsmr-remote-datalogger: starting
s6-rc: info: service svc-dsmr-datalogger: starting
s6-rc: info: service svc-dsmr-backend: starting
s6-rc: info: service svc-dsmr-webinterface successfully started
s6-rc: info: service svc-dsmr-remote-datalogger successfully started
s6-rc: info: service svc-dsmr-datalogger successfully started
s6-rc: info: service svc-dsmr-backend successfully started
s6-rc: info: service legacy-services: starting
Starting DSMR Reader - webinterface...
Starting DSMR Reader - backend...
s6-rc: info: service legacy-services successfully started
[2024-04-13 17:31:36 +0200] [285] [INFO] Starting gunicorn 20.1.0
[2024-04-13 17:31:36 +0200] [285] [INFO] Listening at: unix:/tmp/gunicorn--dsmr_webinterface.socket (285)
[2024-04-13 17:31:36 +0200] [285] [INFO] Using worker: sync
[2024-04-13 17:31:36 +0200] [310] [INFO] Booting worker with pid: 310
Current logging level set to "ERROR". More information can be found here: https://dsmr-reader.readthedocs.io/en/latest/how-to/troubleshooting/enabling-debug-logging.html

Werkt nog niet icm met Home Assistant maar moet daarvoor weer ff wat dieper graven. Of heb jij de DMSR code nog gewijzigd / op een andere plek gezet?

sanderdw avatar Apr 13 '24 15:04 sanderdw

@sanderdw DSMR Reader lijkt niet te starten. Ik heb even een dummy setup gemaakt en de "latest" laat wel gewoon de webinsterface van DSMR zien, maar de development image niet, ondank ik geen fouten zie. Ik moet er dus even verder induiken wat S6-overlay betreft. Er lijkt in die hoek nog iets niet goed te starten.

xirixiz avatar Apr 13 '24 16:04 xirixiz

Gefixt! https://github.com/xirixiz/dsmr-reader-docker/actions/runs/8675341679 ... is in de maak. Ik was onder andere vergeten nginx mee te starten.

xirixiz avatar Apr 13 '24 18:04 xirixiz

Image ready for testing! ghcr.io/xirixiz/dsmr-reader-docker:development

xirixiz avatar Apr 13 '24 18:04 xirixiz

Lekker bezig Bram en Sander!!! Hopelijk lukt het Sander daarmee om hem weer draaiend te krijgen in HA.

Alfagek avatar Apr 13 '24 18:04 Alfagek

Top @xirixiz, hij werkt!

@Alfagek, kan jij eens testen? Gewoon de officiΓ«le addon via mijn repo even verwijderen en handmatig het mapje dsmr_reader uit deze branch https://github.com/sanderdw/hassio-addons/tree/reader-1.11.1 in de addons map zetten van je ha.

Na een refresh in ha moet hij zo verschijnen: Screenshot_20240413-210024

Ps, je kan altijd terug naar de stable release door die addon weer te verwijderen en weer de officiΓ«le via mijn HA repo te installeren, de dmsr reader versie is namelijk hetzelfde.

sanderdw avatar Apr 13 '24 18:04 sanderdw