2015-04-03 30 views
8

Sto utilizzando Docker per creare un contenitore nginx specifico con SSL.C'è un modo per aggiungere un prompt durante il processo di creazione della finestra mobile?

Ma non voglio che i miei file SSL siano conservati nel mio sistema di versionamento così com'è. Pertanto sono crittografati. Quando si costruisce un container docker, ho bisogno della password per decodificare i file e testare la configurazione di nginx.

sto usando read per ottenere un prompt nel mio script di installazione ma Docker ferma semplicemente sul prompt:

+ echo 'Please enter the password for the SSL certificates: ' 
+ read -s SSL_PASSWORD 
INFO[0008] The command [/bin/sh -c /build/setup.sh && /build/cleanup.sh] returned a non-zero code: 1 

C'è qualche modo per ottenere un prompt quando si fa un docker build?

Grazie per il vostro aiuto :)

+0

strumenti come expect possono essere utili, vedere http://expect.sourceforge.net/ – user2915097

+0

@ user2915097 Bene, se capisco 'expect' correttamente, salva le azioni che fai e le" riproduce ". Ma, ** Non voglio ** inserire la mia password in uno script, altrimenti la crittografia sarebbe completamente inutile. ** deve ** essere attraverso un prompt. – achedeuzot

+0

Il mio male, quello che ho detto è corretto per "autoexpect". Ma il problema è che il mio 'docker build' è in esecuzione all'interno di una VM (boot2docker), quindi non so se quello che sto cercando di fare è anche possibile. – achedeuzot

risposta

3

Ebbene, dopo aver cercato in giro, non c'è modo di avere un prompt durante una docker build. È stato progettato per essere completamente automatizzato.

Farò questo passaggio durante il docker run quindi.

Grazie ad una certa larsks sul gruppo #docker IRC, c'è una lettura interessante su questi temi a https://github.com/GoogleCloudPlatform/kubernetes/issues/2030

Grazie per l'aiuto!

0

Utilizzare il comando expect poiché è come eseguire da una riga di comando. COPY attendi lo script dall'host di docker ed eseguilo.

+0

Questo potrebbe funzionare, ma se si tratta di password e altri dati sensibili che non si desidera avere in uno script, in realtà non risolve il problema (cf commenti iniziali che suggeriscono già 'expect' e' autoexpect'). Dovrai comunque inserire la password nello script che è una cattiva idea. Ma potrebbe essere utile in alcuni casi ... – achedeuzot