docs: explain loading deploy environment
This commit is contained in:
@@ -71,7 +71,41 @@ set -a
|
||||
set +a
|
||||
```
|
||||
|
||||
In alternativa aggiungere `--env-file deploy/.env` a ogni comando `docker compose`.
|
||||
Le tre righe fanno questo:
|
||||
|
||||
1. `set -a` dice alla shell di esportare automaticamente tutte le variabili assegnate da
|
||||
questo momento in poi;
|
||||
2. `. ./deploy/.env` (il punto iniziale è l'abbreviazione di `source`) legge ed esegue il file
|
||||
nella shell corrente. Le variabili diventano quindi disponibili a `docker compose` e ai
|
||||
processi figli, senza aprire una nuova shell;
|
||||
3. `set +a` disattiva l'esportazione automatica per evitare che assegnazioni successive vengano
|
||||
esportate accidentalmente.
|
||||
|
||||
Esempio: se `deploy/.env` contiene
|
||||
|
||||
```dotenv
|
||||
THT_MODEL_API_KEY_SECRET_FILE=deploy/secrets/model-api-key
|
||||
```
|
||||
|
||||
dopo il comando `source` la shell possiede `THT_MODEL_API_KEY_SECRET_FILE` e Compose può usare
|
||||
quel percorso per leggere il secret file. Il valore della API key non viene caricato in
|
||||
`deploy/.env`: resta nel file separato sotto `deploy/secrets/`.
|
||||
|
||||
La forma equivalente, senza modificare l'ambiente della shell, è passare il file direttamente a
|
||||
Compose:
|
||||
|
||||
```sh
|
||||
docker compose --env-file deploy/.env -f compose.yaml -f deploy/compose.production.yaml \
|
||||
--profile external up --build --wait
|
||||
```
|
||||
|
||||
Non usare `source`/`.` con file ricevuti da terzi senza averne verificato il contenuto: un file
|
||||
`.env` sourced è codice shell, non un semplice formato dati. In questa guida il file viene creato
|
||||
localmente da `deploy/env.example` e contiene solo assegnazioni di configurazione e percorsi.
|
||||
|
||||
Per i comandi successivi si può quindi scegliere una sola delle due modalità: fare `source`
|
||||
una volta all'inizio della sessione, oppure aggiungere `--env-file deploy/.env` a ogni comando
|
||||
`docker compose`.
|
||||
|
||||
Salvare invece ogni credenziale in un file separato dentro `ThothII/deploy/secrets/`. Sul sistema
|
||||
host il file deve essere leggibile solo dall'utente/servizio che esegue Docker (`0400` se solo
|
||||
|
||||
Reference in New Issue
Block a user