docs: explain loading deploy environment
This commit is contained in:
@@ -71,7 +71,41 @@ set -a
|
|||||||
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
|
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
|
host il file deve essere leggibile solo dall'utente/servizio che esegue Docker (`0400` se solo
|
||||||
|
|||||||
Reference in New Issue
Block a user