meterN e 123Solar su NAS Synology con Docker

Discussioni relative al software di monitoraggio energetico METERN
EdoFede
Messaggi: 30
Iscritto il: 11/03/2019, 11:17

meterN e 123Solar su NAS Synology con Docker

Messaggioda EdoFede » 11/03/2019, 11:47

Ciao a tutti,

seguo il sito di Flavio da alcuni anni, oltre al forum dello sviluppatore dei due software.
Mi sono accorto solo ora :roll: :lol: dell'esistenza del forum italiano dedicato ai due sistemi.

Volevo condividere anche con voi ciò che ho realizzato nelle scorse settimane, in modo che possa essere utile anche ad altri.

Avevo già un NAS (piuttosto carrozzato) e volevo evitare l'acquisto di un raspberry da dedicare a meterN.
Ho quindi trovato il modo di farlo girare sul NAS mediante Docker. Inizialmente su un container un po' accrocchiato.
Ho poi deciso di creare una immagine fatta seguendo linee guida e filosofia di Docker, che ho poi deciso di distribuire gratuitamente a tutto.

L'immagine può essere usata su qualsiasi piattaforma su cui viene installato Docker (anche sul raspberry stesso, volendo).

Questi sono i riferimenti ai miei repository dove potete trovare l'immagine ed i sorgenti:

Ho poi scritto una guida specifica (sia in Italiano che in Inglese) per l'installazione su NAS Synology:

Spero possa essere utile.

Ciao,
Edo



EDIT: Comandi per installare l'immagine Docker su Raspberry Pi

Dopo alcune prove con Flane, ho compilato un'immagine anche per Raspberry.
Per usarla, il comando è questo (cambia l'ultima riga rispetto a quanto presente sul mio sito e repository GitHub/Docker):

Codice: Seleziona tutto

SERVER_PORT=10080 && \
USB_DEVICE=/dev/ttyUSB0
docker create --name 123Solar-meterN \
--device=$USB_DEVICE:rwm \
--volume 123solar_config:/var/www/123solar/config \
--volume 123solar_data:/var/www/123solar/data \
--volume metern_config:/var/www/metern/config \
--volume metern_data:/var/www/metern/data \
-p $SERVER_PORT:80 \
edofede/123solar-metern:arm32v7-2.4


Appena ho un po' di tempo, creo il necessario per avere un tag "latest" unico e quindi un comando unico multipiattaforma.
Ultima modifica di EdoFede il 27/03/2019, 21:11, modificato 2 volte in totale.


Avatar utente
Flane
Messaggi: 2363
Iscritto il: 16/01/2016, 15:02

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda Flane » 11/03/2019, 15:21

Ciao Edo,
ti ringrazio innanzitutto per aver condiviso questi tuoi interessanti sviluppi.

Essendo un totale profano di Docker ho provato ad approfondire un pò la cosa, ma ad essere sincero non c'ho capito un granchè :oops: :oops:

Mi sembra di capire che ci sono delle grandi potenzialità in questo sistema ma mi risulta particolarmente difficile metterle a fuoco .... :? :?

Puoi dare qualche spunto in più ai poveri profani come me per cercare di capire come potremmo utilizzare il tuo lavoro e che vantaggi ne potremo avere?
non solo per un utilizzo su nas ma anche su Raspberry come già facciamo ?

Grazie ancora per la tua disponibilità. ;)

EdoFede
Messaggi: 30
Iscritto il: 11/03/2019, 11:17

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda EdoFede » 12/03/2019, 11:49

Certamente!

Semplificando molto, Docker è specie di virtualizzatore (non nel senso stretto del termine) che consente di far girare una applicazione Linux in un "container" che gira su un altro sistema operativo. Nel fare questo, consente inoltre di definire e distribuire delle "immagini" che consistono in una serie di step automatizzati di creazione.

Nella pratica, per mettere in piedi l'ambiente per eseguire 123Solar e meterN, devo installare un sistema operativo, configurarlo, installare webserver, php, configurare gestione servizi, ecc...
Con Docker ho potuto automatizzare tutti questi processi e creare un pacchetto pre-configurato pronto per essere eseguito.

Un po' come la tua immagine SolarStretch, con la differenza che l'immagine Docker può girare su qualsiasi piattaforma supportata ed il container può essere eliminato/ricreato dall'utente (senza perdere i dati e config di 123Solar/meterN) in pochi secondi con due semplici comandi.
(L'esigenza di ricrearla può essere sia in caso di problemi, sia per eventuale aggiornamento della piattaforma, sia per farne un clone per eventuali prove, ecc...)

Per chi è un po' più affine all'informatica, ho trovato questo articolo che spiega un po' più in dettaglio cosa sta alla base di Docker:
https://www.redhat.com/it/topics/contai ... -is-docker

Non ho ancora fatto delle prove su raspberry, perchè purtroppo al momento ne ho uno solo ed è dedicato a fare da mediacenter... (ed un po' per mancanza di tempo).
Sono curioso di provare, ma per ora mi sono limitato a distribuire l'immagine e fare la guida per installazione su NAS.

Ammettendo che tutto funzioni correttamente anche su raspberry, i vantaggi principali rispetto all'immagine pronta sono principalmente la manutenibilità e la possibilità di ricreare o duplicare i container. Tralasciando qualche piccola miglioria che ho fatto, ma marginale.

Mettiamo, per esempio, che esca un aggiornamento di meterN che richiede una versione più recente di PHP, che magari ha anche delle differenze di configurazione. Oppure che viene rilasciato un bugfix importante di vulnerabilità per il server web.
Con un sistema configurato manualmente o con immagine raspberry, dovrà essere l'utente ad aggiornare il sistema operativo, modificare le eventuali configurazioni e testare tutto.
Attraverso Docker, lo sviluppatore rilascia una nuova versione dell'immagine (che conterrà tutti i nuovi aggiornamenti e modifiche necessarie...oltre al testing già eseguito) e l'utente dovrà solo ricreare il container con 2 comandi, senza neanche dover copiare i propri dati e configurazioni.

Altro esempio: l'ultima release si scopre essere problematica dopo l'installazione? L'utente potrà ricreare il container puntando alla release precedente ed avere il sistema di nuovo attivo in pochi secondi.


E' un po' articolato e lungo, ma spero di aver tolto un po' di dubbi...

Per qualsiasi altra domanda, son qua ;)

Ciao,
Edo

mariolino320
Messaggi: 42
Iscritto il: 10/11/2018, 1:10

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda mariolino320 » 12/03/2019, 14:22

Wow, grande.... Spero di avere il tempo per provare l'installazione sul mio nas. Intanto seguo con attenzione eventuali sviluppi.

Avatar utente
Flane
Messaggi: 2363
Iscritto il: 16/01/2016, 15:02

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda Flane » 12/03/2019, 16:16

Ma volendo provare su un raspberry, dovrei partire da un'immagine pulita del sistema operativo raspbian stretch Lite, installare Docker con il comando da terminale:

Codice: Seleziona tutto

curl -sSL https://get.docker.com | sh

e successivamente eseguire i seguenti comandi di installazione:

Codice: Seleziona tutto

SERVER_PORT=10080 && \
USB_DEVICE=/dev/ttyUSB0
docker create --name 123Solar-meterN \
   --device=$USB_DEVICE:rwm \
   --volume 123solar_config:/var/www/123solar/config \
   --volume 123solar_data:/var/www/123solar/data \
   --volume metern_config:/var/www/metern/config \
   --volume metern_data:/var/www/metern/data \
   -p $SERVER_PORT:80 \
   edofede/123solar-metern:latest


Ma questi ultimi non ho proprio capito dove li esegui .... :oops:

PS: io ho trovato questa guida per Raspberry per chi vuole approfondire:
Buildare e usare container Docker per Raspberry Pi

EdoFede
Messaggi: 30
Iscritto il: 11/03/2019, 11:17

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda EdoFede » 12/03/2019, 21:23

Flane ha scritto:Ma questi ultimi non ho proprio capito dove li esegui .... :oops:


Direttamente da terminale o ssh su raspberry ;) (o su NAS se provi su nas...)
in pratica sull'host su cui hai installato Docker e che ospiterà i container

Quel comando scarica la mia immagine e ne crea un container.
Dopo di che potrai puntare col browser al raspberry sulla porta che indichi nel comando (10080 nell'esempio).

Se non hai nulla installato sul raspberry, puoi modificare la porta da 10080 a 80 sullo script, così non devi stare ad indicare la porta sul browser.

Ciao,
Edo

EdoFede
Messaggi: 30
Iscritto il: 11/03/2019, 11:17

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda EdoFede » 12/03/2019, 21:23

Flane ha scritto:Ma questi ultimi non ho proprio capito dove li esegui .... :oops:


Direttamente da terminale o ssh su raspberry ;) (o su NAS se provi su nas...)
in pratica sull'host su cui hai installato Docker e che ospiterà i container

Quel comando scarica la mia immagine e ne crea un container.
Dopo di che potrai puntare col browser al raspberry sulla porta che indichi nel comando (10080 nell'esempio).

Se non hai nulla installato sul raspberry, puoi modificare la porta da 10080 a 80 sullo script, così non devi stare ad indicare la porta sul browser.

Ciao,
Edo

Avatar utente
Flane
Messaggi: 2363
Iscritto il: 16/01/2016, 15:02

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda Flane » 13/03/2019, 23:18

Sto incominciando a capire qualcosa in più di docker. :)

Ho installato su un Raspberry 2 l'immagine Raspbian stretch lite pulita e docker.

Ho eseguito il test hello-world con il comando:

Codice: Seleziona tutto

docker run -t hello-world

ed ha correttamente scaricato il container hello-world e poi eseguito.

Ho quindi installato il tuo container eseguendo i comandi indicati sopra da terminale.
Arrivato alla fine senza particolari problemi, ho provato a puntare alla pagine web di 123solar tramite browser, ottenendo un

Codice: Seleziona tutto

ERR_CONNECTION_REFUSED


Ho verificato i container docker attivi con

Codice: Seleziona tutto

docker ps

e non avevo niente.

Ho controllato i container presenti con:

Codice: Seleziona tutto

docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
edofede/123solar-metern   latest              cb4dbacae0be        34 hours ago        78MB
hello-world               latest              618e43431df9        2 months ago        1.64kB

ed effettivamente il tuo container sembra presente.

ho provato ad eseguire il tuo container con:

Codice: Seleziona tutto

docker run -t edofede/123solar-metern

ma la risposta che ottengo è:

Codice: Seleziona tutto

standard_init_linux.go:207: exec user process caused "exec format error"


Che cosa ho sbagliato?

EdoFede
Messaggi: 30
Iscritto il: 11/03/2019, 11:17

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda EdoFede » 14/03/2019, 8:19

Flane ha scritto:ho provato ad eseguire il tuo container con:

Codice: Seleziona tutto

docker run -t edofede/123solar-metern

ma la risposta che ottengo è:

Codice: Seleziona tutto

standard_init_linux.go:207: exec user process caused "exec format error"


Che cosa ho sbagliato?


Il comando run crea un nuovo container (partendo dall'immagine indicata) e lo esegue.
Non ti serve in questo caso, perchè lo hai già creato con il comando docker create.

Prova a lanciare:

Codice: Seleziona tutto

docker start 123Solar-meterN

...che serve ad avviare un container già presente

dopo di che, verifica i log con:

Codice: Seleziona tutto

docker logs 123Solar-meterN


E vediamo un attimo cosa è successo all'avvio... (magari uno dei componenti non è compatibile con architettura ARM..)


"docker images" ti da l'elenco delle immagini che hai in locale (quindi quelle che hai compilato tu o che ha scaricato dall'hub), non l'elenco dei container presenti.
Per vederli tutti, usa

Codice: Seleziona tutto

docker ps -a


Fammi sapere

EdoFede
Messaggi: 30
Iscritto il: 11/03/2019, 11:17

Re: meterN e 123Solar su NAS Synology con Docker

Messaggioda EdoFede » 14/03/2019, 20:56

Penso di aver capito... l'immagine compilata tramite l'hub di Docker viene fatta su piattaforma x86_64.... probabilmente per questo motivo non gira su raspberry.

Se riesci comunque a postare i log, verifico.

Provo ad installare Docker sul mio raspberry...non so se funziona (gira su osmc), ma tento...


Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti