<div dir="ltr"><div>Buongiorno a tutti,<br>di seguito vi illustrerò come è stato utilizzato lo strumento docker-compose per la configurazione di un servizio attualmente attivo sul server dell'associazione.</div><div><br></div><div>Innanzitutto per utilizzare lo strumento docker-compose dovremo creare un nuovo file con nome <i>docker-compose.yml</i>, vi consiglio di creare il file in una cartella vuota e utilizzarla soltanto per le risorse inerenti la configurazione.</div><div><br></div><div></div><div>L'esempio seguente è la configurazione del sevizio nextcloud, le altre configurazioni sono disponibili nel repository gitlab dedicato: <a href="https://gitlab.com/G.U.L.Li/servizi-docker-compose" target="_blank">https://gitlab.com/G.U.L.Li/servizi-docker-compose</a><br><br><font size="4"><span style="font-family:monospace"><span style="color:rgb(56,118,29)">version: <span style="color:rgb(224,102,102)">'3'</span><br><br>services:<br>  nextcloud:<br>    image: <span style="color:rgb(224,102,102)">nextcloud:18.0.6</span><br>    restart: <span style="color:rgb(224,102,102)">unless-stopped</span><br>    networks:<br><span style="color:rgb(224,102,102)">      - traefik_net</span><br>    volumes:<br><span style="color:rgb(224,102,102)">      - ./var_www_html:/var/www/html</span><br>    labels:<br><span style="color:rgb(224,102,102)">      - "traefik.enable=true"<br>      - "traefik.http.routers.nextcloud.rule=Host(`<a href="http://nextcloud.linux.livorno.it" target="_blank">nextcloud.linux.livorno.it</a>`)"<br>      - "traefik.http.routers.nextcloud.entrypoints=websecure"<br>      - "traefik.http.routers.nextcloud.tls.certresolver=myresolver"</span><br><br>networks:<br>  traefik_net:<br>    external: <span style="color:rgb(224,102,102)">true</span></span></span></font><br><br></div><div><br></div><div>Con <i>version</i> definiamo la versione del file docker-compose.yml, dentro <i>networks</i> attiviamo una rete 'esterna' già presente in docker e la rendiamo disponibile ai servizi (punto successivo).<br></div><div></div><div>Con <i>services</i> definiamo i servizi, in questo caso ne utilizziamo soltanto uno (nextcloud):<br><ul><li><i>images</i> definisce l'immagine da utilizzare come base del container e con il valore che segue i due punti specifichiamo la release, la release di default altrimenti sarà <b>latest</b><br></li><li><i>restart</i> con il valore unless-stopped riavvierà il container a meno che l'arresto del container non sia dovuto ad un'azione manuale dell'utente<br></li><li><i>networks</i> definisce la rete a cui sarà connesso il container</li><li><i>volumes</i> indica una cartella presente nell'host da collegare ad una cartella del container, in questo caso la cartella <b>var_www_html</b> è presente nella stessa cartella del file docker-compose.yml e contiene i dati e le preferenze degli utenti del servizio nextcloud</li><li>Infine le <i>label</i> indicano a traefik le istruzioni di reverse proxy per il collegamento al servizio nextcloud, approfondirò con un'altra mail</li></ul><div><br></div><div>Quando saremo soddisfatti della configurazione di prova dei servizi procediamo con l'avviamento, per gestire i servizi utilizzeremo il comando docker-compose con differenti opzioni.</div><div>Le opzioni che più ho utilizzato sono queste tre:<br></div><ul><li><i>docker-compose up -d</i>, crea/aggiorna i container dei servizi presenti nella configurazione, con <b>-d</b> non saremo collegati al logging dei container quando saranno avviati<br><i></i></li><li><i>docker-compose logs -f --tail=all</i>, verremo collegati al logging dei container (se avviati)<br></li><li><i>docker-compose down --volumes</i>, ferma e rimuove i container dei servizi presenti nella configurazione, con <b>--volumes</b> verranno eliminati anche i volumi collegati ai container<i><br></i></li></ul><div><br></div><div>Buona sperimentazione!</div><div>Alessio</div><div><br></div></div></div>