Esistono 3 metodi per ottenere segreti per un'app all'interno di un contenitore finestra mobile. I primi 2 riguardano la configurazione della finestra mobile. L'ultimo è avere le tue app per recuperare direttamente i segreti da un negozio segreto.
1 - Variabili d'ambiente
Secondo la guida "The 12 Factor App" , i segreti non sono altro che una configurazione e devono sempre essere impostati nell'ambiente. Puoi impostare i tuoi segreti come variabili di ambiente durante l'esecuzione della finestra mobile e la tua app li accede da lì.
2 - Volumi montati
Potresti avere i tuoi segreti tutti all'interno di un particolare file di configurazione / segreti, quindi montarli sulla tua istanza come volume montato .
3 - Recupera dall'archivio segreto
Come menzionato @ 030, puoi usare Hashicorp Vault (o "Amazon Secrets Manager", o qualsiasi altro servizio simile).
La tua app o un'app sidecar può recuperare direttamente i segreti di cui ha bisogno, senza dover gestire alcuna configurazione sul contenitore Docker. Questo metodo consentirebbe di utilizzare i segreti creati dinamicamente (una caratteristica molto interessante di tali sistemi) e senza doversi preoccupare che i segreti siano visualizzabili dal file system o dall'ispezione delle variabili env del contenitore docker.
Opinione personale
Credo che le variabili env siano la strada da percorrere. È più facile da gestire e puoi ancora estrarre da un negozio segreto come Hashicorp Vault, se hai il tuo sistema di compilazione CI, tira i segreti durante la compilazione e impostali durante la distribuzione. Ottieni il meglio da entrambi i mondi e l'ulteriore vantaggio dei tuoi sviluppatori che non hanno bisogno di scrivere il codice dell'applicazione per recuperare i segreti. Gli sviluppatori dovrebbero concentrarsi sulla funzionalità del loro codice e non occuparsi delle attività di amministrazione come il recupero delle password.
Il codice dell'applicazione deve essere incentrato sulla sua stessa funzionalità dell'app e non deve occuparsi di attività di back-end come il recupero delle password. Proprio come afferma l'app 12 Factor.
Modifica: modifica l'ultima frase per rimuovere le implicazioni del silo-ing Developer vs SysAdmin. I compiti stessi dovrebbero essere separati dal punto di vista del codice, ma DevOps riguarda le stesse persone tenendo a mente entrambi e non essere limitati.
Opinione personale (aggiornamento)
L'eccellente commento di Per @ Dirk ( passare i segreti a un container Docker ), vi è un argomento molto forte per dare la priorità a un negozio segreto rispetto ai variatori ENV, a causa del fatto che non vogliono perderli.