xirixiz / dsmr-reader-docker

DSMR Reader in Docker.
https://hub.docker.com/r/xirixiz/dsmr-reader-docker
114 stars 33 forks source link

DSMR-reader v5 #264

Closed dennissiemensma closed 2 years ago

dennissiemensma commented 2 years ago

Request

Het heeft even geduurd, maar DSMR-reader v5 is nu zo goed als af. Ik ben momenteel nog zelf aan het draaien en zal ook een opzet maken voor alle wijzigingen qua envvars voor Docker. Hoe dan ook zal die niet compatible zijn met v4.x, tenzij je zelf de oude envvars wilt mappen qua namen. Zie de changelog hieronder.

Uiteindelijk zal DSMR-reader v5.0 eerst gereleased worden zodat er rustig getest kan worden. Wellicht dat ik zelfs eerst een release candidate tag, zodat het ook voor jou te splitsen en goed te testen is. Later volgt DSMR-reader v4.20, met enkele bugfixes (die ook al in v5 zitten), maar vooral met de automatische boodschap dat v5 er is.

Ik verwacht nu geen actie van je hoor, maar dan weet je dat dit er aan komt. Ik zal sowieso zelf even een opzet proberen te maken in de vorm van een PR. We zouden sowieso nog een keertje contact hebben over het vergemakkelijken van onderhoud, dus wellicht is dat te combineren. :smile:

Additional information

Dit is nu een directe link naar de (nog) verborgen documentatie met changelog/upgrade guide (voor niet-Docker):

xirixiz commented 2 years ago

Goed werk Dennis! Ik ben benieuwd! Ik maak alvast een branch aan voor v5 zodat ik ook voor Docker (iig voor mezelf) een Docker release kan testen. Je hebt al genoeg moois gedaan dus laat dat beetje effort op Docker maar bij mij liggen hoor, mits je er natuurlijk mee bezig wilt zijn om meer over Docker te weten te komen.

Het is erg druk op mijn werk maar wanneer we een keer iets inplannen komt het vast goed om een keer met elkaar te spreken.

rogierlommers commented 2 years ago

Lekkere samenwerking šŸ‘. Als ik jullie beide ergens mee kan helpen.... dan hoor ik het graag!

xirixiz commented 2 years ago

Branch ready misschien dat jullie het even na kunnen lopen? https://github.com/xirixiz/dsmr-reader-docker/tree/dsmr_v5

Ik ga er vanavond een devcontainer aan toevoegen, dan kan ik meteen eenvoudig lokaal in Docker testen vanuit vscode.

dennissiemensma commented 2 years ago

Ik heb even een rc-release voor je getagged:

~https://github.com/dsmrreader/dsmr-reader/releases/tag/v5.0rc1~ https://github.com/dsmrreader/dsmr-reader/releases/tag/v5.0.0-rc1

dennissiemensma commented 2 years ago

Dat zeggende hebben maakt de rc1 tag de update checker in DSMR-reader stuk: https://github.com/dsmrreader/dsmr-reader/runs/5010925150?check_suite_focus=true#step:11:141

Ironisch, maar moet ik dus ook nog even fixen, want dat is wel superlelijk.

dennissiemensma commented 2 years ago

Wacht nog even met het gebruiken van de tag dus. Wellicht dat ik het formaat iets anders moet doen, want het is niet helemaal semver zie ik: https://semver.org/spec/v2.0.0-rc.2.html

dennissiemensma commented 2 years ago

Oke ik ben er uit. Ik moet het sowieso fixen in de v4-releases, maar aangezien het lange tijd duurt voordat iedereen de melding ziet of upgrade, kan ik er niet op wachten dus zullen we toch die rc's aanmaken. Alleen verwijder ik die op een later moment wel, nadat v5.0 stable gereleased is.

Fixes via https://github.com/dsmrreader/dsmr-reader/issues/1566 Ook zodat we in de toekomst gewoon tags kunnen aanmaken, zonder release, zonder dat het dan iets stuk maakt.

https://api.github.com/repos/dsmrreader/dsmr-reader/releases

Plus dat ik dan ook prerelease vlaggetjes kan checken.

dennissiemensma commented 2 years ago

Ik zal bovenstaande morgen als v4.19.1 releasen.

dennissiemensma commented 2 years ago

Inmiddels is er een tweede release candidate. Ook deze verwijder ik later bij de v5.0 stable release.

xirixiz commented 2 years ago

Ik zal vandaag een Docker release maken op basis van de RC van v5.0, en die ook testen. Ik verwacht dat er niet veel aangepast hoeft te worden.

Maar mijn complimenten, goed begzig geweest!

xirixiz commented 2 years ago

Helaas heb ik wat issues met S6-overlay (niet gerelateerd aan DSMR Reader šŸ˜ƒ). Ik probeer er vanavond nog even in te duiken maar het kan zijn dat het morgenvroeg wordt:

https://github.com/xirixiz/dsmr-reader-docker/runs/5027145887?check_suite_focus=true

dennissiemensma commented 2 years ago

v4.19.1 is nu ook gereleased met een bugfix voor de update checker: https://github.com/dsmrreader/dsmr-reader/releases/tag/v4.19.1

dennissiemensma commented 2 years ago

Helaas heb ik wat issues met S6-overlay (niet gerelateerd aan DSMR Reader smiley). Ik probeer er vanavond nog even in te duiken maar het kan zijn dat het morgenvroeg wordt:

https://github.com/xirixiz/dsmr-reader-docker/runs/5027145887?check_suite_focus=true

Wel fijn overigens dat je het allemaal naar Actions hebt verplaatst. Alles op 1 plek en ook lekker inzichtelijk zo!

xirixiz commented 2 years ago

S6 heeft versie 3.x released waarin veel veranderd is. Ik draai voorlopig nog even op de laatste 2.2.x variant. De build loopt nu dus: https://github.com/xirixiz/dsmr-reader-docker/runs/5027290554?check_suite_focus=true

De master branch zal ik morgen bijwerken zodat de laatste "productie" Docker image gebasseerd is op verdie v4.19.1.

xirixiz commented 2 years ago

Maar idd, het was even wat werk, maar wel beter dat het nu in GH actions staat idd. Azure DevOps was ook fijn, maar nu kan iedereen de pipeline zien en ben ik van een complexe Makefile af.

dennissiemensma commented 2 years ago

Voor die laatste fout met PIL, ik had zelf deze nodig op Debian-like systems:

# You MAY NOT need this, but be sure to install it if you happen to hit the following error at any point later:
# "ImportError: libopenjp2.so.7: cannot open shared object file: No such file or directory"

sudo apt-get install libopenjp2-7-dev

Het is niet exact dezelfde fout, maar ging wel op PIL stuk in ieder geval.

xirixiz commented 2 years ago

Helaas kreeg ik een fout bij het installeren van de requirements, waarschijnlijk vanwege de Docker base image die ik gebruik:

The headers or library files could not be found for jpeg, a required dependency when compiling Pillow from source.

Package: jpeg-dev toegevoegen aan de Dockerfile heeft het issue verholpen. Build succesvol!

xirixiz commented 2 years ago

Kan het zijn dat het pad is aangepast van var/tmp naar tmp?

2022/02/01 21:24:52 [crit] 329#329: *1 connect() to unix:///tmp/gunicorn--dsmr_webinterface.socket failed (2: No such file or directory) while connecting to upstream, client: 1
27.0.0.1, server: _, request: "GET /about HTTP/1.1", upstream: "http://unix:///tmp/gunicorn--dsmr_webinterface.socket:/about", host: "127.0.0.1"
dennissiemensma commented 2 years ago

Ja klopt! Ik zal het nog toevoegen aan de changelog, want het is een change, maar alleen gerelateerd aan hoe het gehost/gedraaid wordt. Stond er niet bij stil voor Docker!

dennissiemensma commented 2 years ago

Het is wat slordig aan mijn kant, want er was wel een dedicated issue voor en ook gekoppeld aan v5, maar blijkbaar nog niet in de changelog. Ik zal hem toevoegen!

https://github.com/dsmrreader/dsmr-reader/issues/1297

xirixiz commented 2 years ago

image

Geen probleem.... witte rook šŸ˜„

xirixiz commented 2 years ago

De development release werkt helemaal naar behoren voor zover ik het kan testen. Ik had er aan de Docker kant nog een minor bugje inzitten en heb die inmiddels ook opgelost (versie weergave bij starten Docker container)

xirixiz commented 2 years ago

Gisterenavond viel mij het trouwens op dat er een soort dark mode actief was, niet op de frontend, maar bij het Admin panel. Ik weet niet of dat de bedoeling is (zag laatst namelijk een dark mode PR), maar een aantal kleuren conflicteren met elkaar waardoor sommige zaken onleesbaar waren. Ik zal vanavond nog een keer kijken en een screenshot maken wanneer dark mode actief is.

dennissiemensma commented 2 years ago

De development release werkt helemaal naar behoren voor zover ik het kan testen. Ik had er aan de Docker kant nog een minor bugje inzitten en heb die inmiddels ook opgelost (versie weergave bij starten Docker container)

Oke top, dank! Dan is het denk ik vooral aan wat gebruikers die wachten op InfluxDB 2 enzo om te gaan testen. Inhoudelijk is DSMR-reader weinig veranderd, veel backwards incompatible vooral. Idem voor de koppeling met Dropbox, die moet ook "opnieuw" bij iedereen die upgrade.

Hoe kunnen ze testen? Door de development tag binnen te halen en te draaien?

dennissiemensma commented 2 years ago

Gisterenavond viel mij het trouwens op dat er een soort dark mode actief was, niet op de frontend, maar bij het Admin panel. Ik weet niet of dat de bedoeling is (zag laatst namelijk een dark mode PR), maar een aantal kleuren conflicteren met elkaar waardoor sommige zaken onleesbaar waren. Ik zal vanavond nog een keer kijken en een screenshot maken wanneer dark mode actief is.

Goeie, ik heb dat zelf nog niet gezien. Misschien is het een feature van de Django Admin interface/module zelf. Was het toevallig op je mobiel?

dennissiemensma commented 2 years ago

@xirixiz draait v5rc2 bij jou nog steeds goed? En heb je nog issues vernomen van v5-gebruikers? Al zullen het er hooguit een handvol zijn die het uberahupt geprobeerd hebben.

Als er verder geen grote issues zijn, dan release ik vanavond of morgen wel.

xirixiz commented 2 years ago

Yes! Geen issues tegengekomen.

dennissiemensma commented 2 years ago

Twee releases getagged:

dennissiemensma commented 2 years ago

Mocht er trouwens nog wat toelichting nodig zijn in je docs qua backwards-incompatibility, laat maar weten. Ik kan altijd even een opzetje maken.

Makkelijkste is om gewoon naar de v5.0 changelog in DSMR-reader zelf te verwijzen, met een waarschuwing dat het niet perse een naadloze upgrade is. Via Docker is wel de makkelijkste manier, maar afhankelijk van de gebruikte features kan er alsnog wat handwerk voor de gebruikers inzitten qua herconfigureren.

dennissiemensma commented 2 years ago

Ik heb in DSMR-reader's github nu de default clone branch ook bijgewerkt naar v5, idem voor de docs.

Alleen laat ik de twee v5.x release candidates nog even (wellicht een weekje) staan, zodat nog niet iedereen de upgrade notificatie krijgt (als het goed is). Ik verwacht dat dat het aantal gebruikers drukt dat direct een upgrade doet.

xirixiz commented 2 years ago

De ervaring is dat de meeste mensen er wel uitkomen wanneer ze met Docker werken. Al moet ik (oneerbiedig) bekennen dat Jan met de pet tegenwoordig Docker gebruikt zonder echt te weten hoe het werkt, waardoor er toch vaker vragen opduiken die eigenlijk niet DSMR maar Docker gerelateerd zijn. Nou ja, we gaan het zien šŸ˜„

Als je wilt kan ik wel v5.0.0 in "productie" uitbrengen, dan blijft het aantal upgrades nu beperkt tot de Docker gebruikers en kunnen we kijken welke issues daarbij naar voren komen?

xirixiz commented 2 years ago

Done! v5.0 is "live" in Docker.... ben benieuwd!

rogierlommers commented 2 years ago

Done! v5.0 is "live" in Docker.... ben benieuwd!

Wederom dank voor jullie werk, @xirixiz and @dennissiemensma Ik ga vandaag of morgen switchen naar v5. Keep you posted...

rogierlommers commented 2 years ago

Working fine, now running latest tag, which is DSMR-reader v5.0. Docker compose yaml can be found in the screenshot. No changes were needed.

Schermafbeelding 2022-02-08 om 12 13 05

xirixiz commented 2 years ago

Thanks voor jouw hulp Rogier! Goed om te weten dat het voor jou ook naar behoren werkt!

niekniek89 commented 2 years ago

Bedankt voor jullie super werk! Ik heb zojuist een "recreate" gedaan binnen portainer. Echter start DSMR daarna niet meer (web-interface).

Ik heb nog een deel uit de portainer log kunnen halen. DSMR V5.txt Zie dat deze melding telkens terug komt:

s6-svwait: fatal: supervisor died. Zit inmiddels weer op de V4.19 release.

ik gebruik docker-compose met de 'latest' tag (zoals al ruim 2 jaar).

xirixiz commented 2 years ago

Dit is een portainer issue. Kijk even in de closed issue section en zoek daar op portainer. /app/run.sh bestaat namelijk al tijden niet meer...

WaaromZoMoeilijk commented 2 years ago

Hey! Dank voor al het werk!

edit: seems I lack patience... thanks again!

LouisMT commented 2 years ago

@WaaromZoMoeilijk

De error komt door je healthcheck voor de Postgres database: test: [ "CMD-SHELL", "pg_isready -U postgres" ]. De postgres gebruiker bestaat namelijk niet, de standaard gebruiker is met POSTGRES_USER ingesteld op dsmrreader. De database werkt dus goed, alleen de healthcheck niet. šŸ˜„

Verder zie ik in de logs ook web requests voorbij komen, waarom werkt het volgens jou niet?


Ik heb zelf 4 verschillende instances omgezet, gewoon de nieuwste image binnen gehaald vanaf 4.19 en ze werken allemaal zonder problemen! :)

WaaromZoMoeilijk commented 2 years ago

Ik was weer eens te snel met oordelen, hij moest zijn first boot nog afmaken ^^ het werkte gewoon na een refresh na het posten hier...

Ga inderdaad wel even achter die fout melding aan, thanks.

niekniek89 commented 2 years ago

Dit is een portainer issue. Kijk even in de closed issue section en zoek daar op portainer. /app/run.sh bestaat namelijk al tijden niet meer...

Lijkt erop alsof hij bij mij idd nog gebruikt word. Overigens nog nooit issues mee gehad. Kan ik het deel '/app/run.sh' veranderen naar '/init' ? AFC60F20-F796-4457-8417-0910A2409A38

dennissiemensma commented 2 years ago

Als je wilt kan ik wel v5.0.0 in "productie" uitbrengen, dan blijft het aantal upgrades nu beperkt tot de Docker gebruikers en kunnen we kijken welke issues daarbij naar voren komen?

Done! v5.0 is "live" in Docker.... ben benieuwd!

Thanks, fijn!

De ervaring is dat de meeste mensen er wel uitkomen wanneer ze met Docker werken. Al moet ik (oneerbiedig) bekennen dat Jan met de pet tegenwoordig Docker gebruikt zonder echt te weten hoe het werkt, waardoor er toch vaker vragen opduiken die eigenlijk niet DSMR maar Docker gerelateerd zijn. Nou ja, we gaan het zien smile

Ja eens, al vind ik dat we daar als developers wel een rol in hebben om gebruikers er enigzins voor te beschermen. Dat zeggende hebben vind ik het ook weer lastig om de exacte grens daarin te bepalen.

Waar ik wel naar toe werk is dat ik uiteindelijk alleen nog maar het draaien via Docker/containers ga ondersteunen. Ik merk dat Docker welliswaar zorgt voor complexiteit, maar anderszijds ook een hoop andere issues wegneemt. Helemaal als het gaat om specifieke infrastructuur, zoals de Python-versie die af en toe roteert, refactoring van mij qua mappen-structuur of iets anders, updaten van processen, etc etc. Voor het lokaal ontwikkelen gebruik ik nu ook al Docker. En al is het de meest simpele opzet, het maakt het behoorlijk snel op te zetten (en herbouwen).

xirixiz commented 2 years ago

Goed om te horen en mooi dat je ook Docker bent gaan gebruiken. Maak je gebruik van devcontainers in vscode?

xirixiz commented 2 years ago

Dit is een portainer issue. Kijk even in de closed issue section en zoek daar op portainer. /app/run.sh bestaat namelijk al tijden niet meer...

Lijkt erop alsof hij bij mij idd nog gebruikt word. Overigens nog nooit issues mee gehad. Kan ik het deel '/app/run.sh' veranderen naar '/init' ? AFC60F20-F796-4457-8417-0910A2409A38

Yes

dennissiemensma commented 2 years ago

Goed om te horen en mooi dat je ook Docker bent gaan gebruiken. Maak je gebruik van devcontainers in vscode?

Ja zoiets maar dan in PyCharm:

Screenshot from 2022-02-08 20-55-55

https://github.com/dsmrreader/dsmr-reader/blob/v5/dsmrreader/provisioning/docker/docker-compose.dev.yml

Het maakt het vooral makkelijk om even een InfluxDB of MQTT broker ernaast te draaien en ook te wisselen van hun versies.

michelotten commented 2 years ago

Zojuist ook mijn docker container bijgewerkt van v4.19 naar v5.0, alles lijkt perfect te werken! Dank voor al jullie werk heren!

rogierlommers commented 2 years ago

Moeten jullie beide projecten niet mergen?

niekniek89 commented 2 years ago

/init is inmiddels gelukt! thnx!

image

xirixiz commented 2 years ago

Moeten jullie beide projecten niet mergen?

Yes, we gaan het daar binnenkort een keer over hebben hoe we daar vorm aan kunnen geven.

sanderdw commented 2 years ago

Goed om deze voortgang te lezen heren. Ook met de Home Assistant addon (weer wat complexiteit bovenop het Bram's docker image) lijkt het nu eindelijk te gaan werken.

Na wat testen kom ik deze melding tegen: https://github.com/xirixiz/dsmr-reader-docker/issues/262#issuecomment-1034809905

Is dat nog iets waar de niet-HA addon gebruikers ook tegenaan lopen?