Configurazione dello stack¶
Traduzione automatica dell'originale francese.
Posizioni¶
| Cosa | Dove |
|---|---|
| File Compose canonico | /opt/docker/<stack>/docker-compose.yml sull'host |
| Documentazione dello stack | 10-stacks/<stack>/README.md nel vault |
| Registro delle decisioni | 10-stacks/<stack>/decisions.md nel vault |
| Chiavi crittografate | 00-infra/secrets/<hôte>/<stack>.enc.env nel vault |
10-stacks/<stack>/compose.yml è un collegamento simbolico inattivo
Nel vault, questo file punta a /opt/docker/<stack>/docker-compose.yml — un percorso che esiste solo sull'host. Non può essere letto da vm-claude.
Conseguenza utile: modificare il file tramite SSH è sufficiente, il vault è già aggiornato poiché contiene solo un collegamento. Non è necessario sincronizzare nulla.
La regola che distingue i due casi:
Struttura di un servizio¶
services:
monservice: # (1)!
image: monimage:1.4.2@sha256:... # (2)!
container_name: monservice
restart: on-failure:5 # (3)!
cpus: 0.5
mem_limit: 256m # (4)!
security_opt:
- no-new-privileges:true
networks:
- infrastructure_network # (5)!
labels:
- dockhand.update=false # (6)!
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:8080/healthz"]
interval: 30s
timeout: 5s
retries: 3
logging:
driver: json-file
options:
max-size: 50m
max-file: "3" # (7)!
networks:
infrastructure_network:
external: true
- Il nome del servizio è quello che Caddy utilizzerà come nome host:
reverse_proxy monservice:8080. - Mai
latest. Un tag di versione e il suo hash: il tag indica ciò che si è voluto, l'hash indica ciò che si è ottenuto. on-failure:5su vm-docker e vm-compute-01,alwaysaltrove — vedere Ciclo di vita.- Regola di dimensionamento: tre volte il consumo osservato in idle.
infrastructure_networkper tutto ciò che Caddy deve raggiungere;authentik_backend_networkin più, se il servizio comunica con Authentik.- Dockhand aggiorna le immagini tramite opt-out. Senza questo tag, un'immagine costruita localmente verrebbe sostituita da un vuoto.
- Senza queste due righe, un container verboso riempie il disco dell'host.
Cosa un file Compose non dovrebbe mai contenere¶
- Nessun dato esplicito. I valori risiedono nel
.envsull'host, cifrati nel vault con SOPS + età. I nomi delle variabili rimangono leggibili: ungit diffindica quale segreto è stato modificato, ma non il suo valore. - Nessun
.envletto o copiato nel vault. Sono deliberatamente esclusi. - Nessuna porta pubblicata di cui nessuno ha bisogno. Se Caddy è sulla stessa rete, si connette al container tramite il suo nome:
ports:aggiunge solo un'ulteriore interfaccia.
La forma per una variabile obbligatoria, che fallisce in modo evidente invece di avviarsi parzialmente:
Prima di tutto up -d¶
config interpola le variabili e convalida lo schema. Se manca una variabile, appare immediatamente, invece di generare un container che si avvia ma non ha alcuna utilità.
Dernière vérification de cette page : 2026-08-29