2016-06-19 14 views
26

Se ho impostato una variabile d'ambiente, dicono ENV ADDRESSEE=world, e voglio usarlo nello script punto di ingresso concatenati in una stringa fissa come:Come utilizzare la variabile di ambiente Docker nell'array ENTRYPOINT?

ENTRYPOINT ["./greeting", "--message", "Hello, world!"] 

con world essendo il valore della varible dell'ambiente, come faccio fallo? Ho provato a utilizzare "Hello, $ADDRESSEE" ma non sembra funzionare, poiché prende letteralmente lo $ADDRESSEE.

risposta

53

Si sta utilizzando il modulo exec di di ENTRYPOINT. A differenza del formato di shell , il modulo di esecuzione non richiama una shell di comandi. Ciò significa che la normale elaborazione della shell non avviene. Ad esempio, ENTRYPOINT [ "echo", "$HOME" ] non eseguirà la sostituzione delle variabili su $ HOME. Se si desidera elaborare la shell, utilizzare il modulo della shell o eseguire direttamente una shell, ad esempio: ENTRYPOINT [ "sh", "-c", "echo $HOME" ].
Quando si utilizza il modulo exec e l'esecuzione di un guscio direttamente, come nel caso della forma shell, è la conchiglia che sta facendo l'ambiente espansione variabile, non finestra mobile. (Da Dockerfile reference)

Nel tuo caso, userebbe forma shell

ENTRYPOINT ./greeting --message "Hello, $ADDRESSEE\!" 
+1

Questo è un pezzo molto utile di consigli che non avevo mai visto in nessuno dei tutorial che ho letto. – ChrisGuest

+1

'ENTRYPOINT java -jar /dockertest.jar -Djava.security.egd = file:/dev /./ urandom -Dserver.port = $ port' mentre' ENV port = 123'. La porta ENV non è stata risolta. Qualche idea, perché? – xetra11

-2

Grazie I ruotava iniettando un indirizzo iP ad un'applicazione java all'interno di un contenitore scaricatore dal file finestra mobile con:

ENTRYPOINT ["sh", "-c", "/usr/bin/java -cp /usr/share/tag/container-test.jar -DseleniumHubHost=$SELENIUM_HUB org.testng.TestNG /usr/share/tag/basic-flow-module.xml"] 

come si parla è coperture che fa l'esecuzione varibable

grazie

+0

Si prega di non aggiungere risposte per dire grazie –