-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eenduidige tijdzones voor back-ups in Docker #613
Comments
Je zou in de logs van dsmr_backend kunnen kijken. Daarvoor zul je wel het logging level moeten aanpassen. In de docs staat een howto, alleen heb ik niet zo snel een link voor je. Het staat onder kopje troubleshooting dacht ik.
|
thanks dat ga ik proberen! |
Heb je hier inmiddels meer duidelijkheid over gevonden? |
Ik ben pas morgen thuis van vakantie, dus ga er van de week zeker mee aan de slag. |
Hoi Ik heb exact hetzelfde probleem en ik dacht dat #588 hiervan de oorzaak zou zijn, maar heb dit zelf ook nog niet geverifieerd. |
Bij deze de link nog voor het aanpassen van het log level: https://dsmr-reader.readthedocs.io/en/latest/troubleshooting.html#logging |
@remb0 heb je hier nog een update over? |
@dennissiemensma Ik heb de laatste docker container (v2.0.2) net gedeployed en zou morgen dus moeten weten of je fix werkt. |
Ik ga morgen proberen mijn docker-compose te updaten (weet nog niet hoe) en dan te testen. |
@remb0 Als je de latest tag gebruikt moet je een 'docker pull' gebruiken (in de folder van docker-compose.yaml) om de laatste versie van de tag latest binnen te halen. Anders moet het het versie nummer updaten naar v2.0.2. Om de logging te verhogen moet je inloggen in de container en met vi de logging aanpassen. De logging op DEBUG zetten heb ik nog niet voor elkaar gekregen omdat je ook nog './post-deploy.sh' moet uitvoeren volgens de handleiding. Echter binnen de docker dontainer is er geen virtualenv beschikbaar en dit script zal dus falen. |
thanks Jork weet wat geleerd. ik heb latest in de compose gezet en vervolgens docker compose up -d. |
Goedemorgen, zelf heb ik in het verleden ook Dropbox backups gemaakt. Ik zal het aanzetten, uitzoeken en terugkoppelen wat er mis gaat en/of de oplossing is. |
Inmiddels zijn we een dag verder en de backup is niet geupload naar Dropbox. @dennissiemensma wat doet de './post-deploy.sh' om de debug logging aan te zetten? De settings aan te passen en de container herstarten lijkt namelijk niet genoeg te zijn. Ik blijf alleen INFO logging zien |
Je kan logging tijdelijk op debug zetten op een draaiende container, maar misschien is het handig dat je het mee kan geven als environment variable bij het starten van de Docker container. Ik zal dat ergens komende week opnemen in een nieuwe release. Je kan iig altijd op je draaiende container inloggen met |
Hoi @xirixiz, Dit is exact wat ik het gedaan. De settings.py aangepast en de container herstart. Er komen echter alleen maar INFO loggin the de stdout (docker logs) en the log-dsmrreader.log blijft leeg. Zelf na de herstart gechecked of the log regel nog steeds niet in comment staat en dat is het geval. De docker logs tonen alleen:
|
Een environmental variable voor de LOGLEVEL zou idd wel een uitkomst zijn. |
Ik denk dat ik weet wat er bij mij lokaal aan de hand is. Wanneer ik een touch uitvoer (net om 20:23 uitgevoerd) op de backup bestanden krijg ik Nu komt ik in de config django config TIME_ZONE = 'Europe/Amsterdam' tegen terwijl mijn system dus op UTC draait. |
|
@dennissiemensma dan kijken we even verder. Is er manier om de dropbox upload handmatig te triggeren? Zodat het uurlijkse testen / debuggen wat sneller kan verlopen |
Wellicht dat je de tweede query beter pas kan doen wanneer de backup daadwerkelijk gemaakt is. Kwestie van proberen. |
In de toekomst ga ik overigens dit soort dingen in de admin interface mogelijk maken, want ik loop al een tijdje tegen dit soort beperkingen aan. Maar daarvoor moet ik eea herschrijven/handmatig maken qua admin-beheer. |
Ik heb die dropbox logregel uit #588 toegevoegd en dit is de output daarvan:
|
Precies, dus als ik het goed lees dan "klopt" dat dus, omdat Pythen in beide datetimes gewoon de tijdzones heeft. En dat zou die zelf moeten omrekenen. Dus voor de 'file:' is dat simpelweg de tijd -2 uur en dan lijkt die het inderdaad al gesynced te hebben. Je kunt nog kijken of een alternatief nog werkt. Hierbij wordt alles omgezet naar de lokale tijd: |
@dennissiemensma De backup zijn in ieder geval een keer geupload De stappen die ik heb gedaan:
|
Dus begrijp ik het goed dat het omzetten naar lokale tijd wel degelijk een verschil maakt voor jou? |
Idd het omzetten naar de localtime zorgt er voor dat de upload id gaan werken |
Leuk probleem om uit te zoeken, maar dit is toch een tijdscyn probleem dat je eenvoudig kunt oplossen?
Daarmee gebruikt de docker container dus de instellingen van de host! |
@MarsWarrior zie de docker-compose file in de vorige comment. Die volume mappings staan er in. Binnen de containers zijn de timezones dan ook hetzelfde als de host server (mits tzdata is geinstalleerd). De hostserver staat ingesteld op UTC en Django op Europe/Amsterdam wat dus problemen lijkt te veroorzaken. Het issue lijkt dan ook te zijn dat de Django code een locale heeft van GMT+2 en daarmee dan ook de UTC datum uitleest. Hierdoor krijgt de data dus een verkeerde offset van 2 uur extra. Gezien de sync elk uur loopt is de backup ineens van voor de laatste sync en wordt deze dus niet geupload. |
Ah! Dat had ik over het hoofd gezien 😄 |
@dennis ik heb mijn server inmiddels op gmt+2 ingesteld maar zag nog steeds geen backups. Ik ben komende week alleen niet thuis en kan niet verder debuggen. Daarna zal ik wel weer kunnen kijken. |
@jorkzijlstra het zou wellicht een oplossing kunnen zijn wanneer ik het tzdata package toevoeg aan de image. Ik zal een test image bouwen en die op de hub plaatsen, dan kan je kijken of dat het issue verhelpt. |
Hoi Bram, Als het goed staat er een pr voor open. Ik draai zelf dus al wel met tzdata. Grt, jork |
Ik zag het nu pas, ik heb mail gemist dat er een pr klaar stond. Ik ben de image iig aan het bijwerken nu, die zal over een uurtje beschikbaar zijn ongeveer. Bedankt voor de bijdrage @jorkzijlstra ! |
Please dont use @dennis unless you want me to be notified, @jorkzijlstra :) |
Bedankt voor jullie berichten. Ik kon helaas niet eerder reageren dan nu. Zoals aangegeven zal ik kijken of ik komende tijd even een momentje kan pakken om dit zelf te reproduceren met Docker en het lokaal kan oplossen. Ik heb het idee dat het namelijk iets heel kleins is uiteindelijk. Tot zover heb ik er dus nog niet inhoudelijk naar gekeken. |
For both the DSMR and DSMRDB container I've added the following: volumes:
- /etc/localtime:/etc/localtime:ro
environment:
- TZ=Europe/Amsterdam As tzdata is now part of the Docker image the Dropbox backups are working fine for me (host CEST). |
Heren, Uiteindelijk heb ik het nu werkend gekregen. Het zijn een aantal settings / issues die het probleem veroorzaken. @xirixiz de @dennissiemensma Zelf ben ik gewend om met het werken van datums altijd terug te gaan naar UTC of epoch en voor display purpose only eventueel een conversie naar een tijdzone te doen. Misschien handig om gewoon in de documentatie op te nemen dat de software vereist om in tijdzone De fixen die ik dus heb toegepast is:
|
Er is net ook een ander issue gemeld over hetzelfde probleem, wat mogelijk niet gerelateerd is aan Docker. Als dat zo is dan kan ik het mogelijk wat makkelijker reproduceren en oplossen. Mits het hetzelfde probleem is. |
Is er trouwens een kant en klare config voor Docker die ik kan proberen? Ik lijk een configfile te missen, want ik krijg:
|
Ik heb een postgres aanpassing gedaan (timezone toegevoegd), vandaar dat ik een eigen postgresql.conf heb geinclude. Je kan eventueel ook de postgresql.conf regel uit de docker-compose.yaml halen. Hierbij de docker-compose met de custom postgressq.conf Vergeet niet de image naam aan te passen naar de processor voor jouw systeem. |
Issue #657 heb ik gesloten, was idd ook een backup probleem met docker. Helaas geen recente backup die ik kan herstellen dus moet even opnieuw beginnen. Tijd om mijn backups beter te regelen |
@jorkzijlstra bedankt, nu krijg ik hem wel draaiende. Alleen zodra ik mijn ontwikkelomgeving op mijn host probeer te mounten/mirroren in de container, werkt de database niet meer. Ik heb te weinig kaas gegeten van deze setup. Wellicht is het dan toch handiger om voor nu dan maar Zoals @RezzZ al aangeeft was zijn probleem namelijk achteraf ook in de Docker-variant. |
@dennissiemensma bedankt voor het checken / proberen. De oplossing die werkt heb ik hierboven beschreven in het eerdere comment comment. De backups worden nu netjes elke nacht geupload. Het komt er op neer dat alles gewoon in tijdzone Ik probeer zo min mogelijk settings te wijzigen in de container. Deze moet je namelijk bij elke docker image aanpassing allemaal opnieuw doen. Ik heb bijvoorbeeld Zoals ik al aangaf is het misschien veel handiger om in de documentatie op te nemen dat de software als vereiste heeft om in de tijdzone Heel erg bedankt voor je tijd. |
Goed werk allemaal en zoals ik al aan heb gegeven ga ik nog opnemen dat de TIME_ZONE als variabele kan worden meegegeven bij het starten van de container, zodat die wordt geïnjecteerd in de settings.py file. Ik heb het vrij druk momenteel, maar zal het proberen ergens deze week in te bouwen. |
De tijdzone binnen DSMR-reader staat overigens standaard op Dus als dat goed is, dan hoeft daar niets voor te wijzigen bedenk ik me net. Dan zou het alleen nog een instelling zijn binnen de PostgreSQL container, die geprovisioned moet worden. |
Ik heb inderdaad niks aangepast in de settings.py. Alleen in de docker-compose.yaml TZ en PGTZ op de database toegevoegd om Postgress op Uiteindelijk heb ik dus geen wijzigingen gedaan in jouw code om het werkend te krijgen. |
Top, in dat geval laat ik dit (voorlopig) voor wat het is. Voor Docker-installaties verwijs ik eigenlijk al helemaal naar derden-projecten, dus ik zal daar voor nu geen wijzigingen in doen. Helemaal wanneer nieuwe versies van de Docker-containers de tijdzone al goed meegeven. https://dsmr-reader.readthedocs.io/en/latest/installation/docker.html |
Ter info, in de volgende release komt er ook een refactoring mee voor de Dropbox-sync. Voortaan kijkt de applicatie niet meer naar de tijden, maar maakt een hash van de inhoud van elk bestand en vergelijkt die met Dropbox. Als die afwijkt, uploadt de applicatie het bestand. Dit moet dergelijke issues met tijdzones ook oplossen en is tevens effectiever. |
Jouw omgeving
Ik draai de laatste versie van dsmr via de docker van xirixiz.
Bug, wens of iets anders
ik maakte iedere dag een automatische backup en deze werd dan ook op mijn dropbox geschreven. Nu heb ik alleen mijn docker aangepast dat de backup voortaan gezet wordt op:
/home/remb0/Docker/dsmr_backups
en in de container beschikbaar via: /dsmr/backups
de backups worden nu nog steeds wel gemaakt in de juiste folder alleen dropbox is hierna niet meer geupdate. Ik heb alleen geen idee waar ik moet kijken of wat ik moet wijzigen.
iemand een tip?
The text was updated successfully, but these errors were encountered: