variabili d'ambiante e restart policy

This commit is contained in:
dado
2025-07-28 21:01:39 +02:00
parent ed53ecd2d6
commit cf9eeb18ca

View File

@@ -34,3 +34,49 @@ Nell'esempio fornito, il container di nginx dipende da quello di php. Di consegu
## Gestione dello Stack ## Gestione dello Stack
Per avviare lo stack Docker, è sufficiente eseguire il comando `docker compose up -d` dalla stessa directory in cui si trova il file docker-compose.yml. Per arrestare i container, utilizzare invece `docker compose down`. Per avviare lo stack Docker, è sufficiente eseguire il comando `docker compose up -d` dalla stessa directory in cui si trova il file docker-compose.yml. Per arrestare i container, utilizzare invece `docker compose down`.
## Variabili d'ambiente
```yml
services:
php:
image: 'morrolinux/myphp'
container_name: ${APP_NAME:?err}-php
volumes:
- './app:/var/www/html'
nginx:
image: 'nginx:latest'
container_name: ${APP_NAME:?err}-nginx
ports:
- '8081:80'
- '8443:443'
volumes:
- './app:/var/www/html'
- './config/nginx:/etc/nginx/conf.d'
mariadb:
image: 'mariadb:latest'
container_name: ${APP_NAME:?err}-mariadb
restart: 'on-failure'
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?err}
```
La sintassi `${}` viene utilizzata per indicare le variabili d'ambiente nel file `docker-compose.yml`. In particolare, nel caso in cui la variabile `APP_NAME` non venga valorizzata, Docker Compose mostrerà un errore. Questa variabile sarà valorizzata all'interno del file `.env`.
L'utilizzo del file `.env` permette di separare i dati, anche quelli sensibili, dalla configurazione vera e propria, risultando in un file compose pulito, generico e riutilizzabile.
Inoltre, il parametro `environment` serve a impostare delle variabili d'ambiente che saranno esportate all'interno del container, rendendole disponibili e utilizzabili dal servizio.
## Restart policy
La politica di riavvio definisce le condizioni in cui un container deve essere riavviato dopo un arresto o un riavvio del servizio Docker. Per impostazione predefinita, non è presente alcuna politica di restart; pertanto, se il demone Docker viene arrestato e successivamente riavviato, il container non riprenderà automaticamente l'esecuzione.
Le politiche di riavvio disponibili sono:
- `on-failure`: questa opzione indica che il container verrà riavviato automaticamente solo se termina con un errore
- `always`: se questa politica è impostata, il container verrà riavviato indipendentemente dal motivo per cui è terminato, a meno che non venga arrestato manualmente. In questo caso, il container riprenderà l'esecuzione automaticamente al successivo riavvio del demone Docker, magari seguito del riavvio del sistema
- `unless-stopped`: questa opzione mantiene l'ultimo stato del container. Se il container è stato arrestato manualmente, non verrà riavviato, anche dopo un riavvio del demone. Tuttavia, se il container era in esecuzione prima dell'arresto del demone, riprenderà automaticamente l'esecuzione
Le politiche di riavvio possono essere configurate sia tramite la riga di comando, utilizzando l'opzione `--restart`, ad esempio `docker run --restart always redis`, sia nel file `docker-compose.yml` attraverso l'apposita direttiva di configurazione `restart`.