2015-12-09 6 views
6

Come si passano gli argomenti in un docker file?Argomento di creazione Docker

Diciamo che ho il dockerfile:

FROM ubuntu:14.04 

MAINTAINER Karl Morrison 

sudo do-something-here myVarHere 

vorrei costruire il file come così per esempio:

docker build basickarl/my-image-example /directory/of/my/dockerfile "my string to be passed to myVarHere here!" 

risposta

2

Abbiamo avuto un requisito analogo e si avvicinò con un relativamente script semplice che fa esattamente questo:

Creiamo un file chiamato dockerfile_template in cui vengono utilizzate variabili proprio come le descrivi. Lo script prende quel file, esegue sostituzioni di stringa e lo copia su dockerfile (senza _template) prima di chiamare docker build dockerfile.

Funziona piuttosto bene. Molto estensibile anche per esigenze future.

Aggiornamento:

rottami che. Utilizzare build-arg (here)

5

Docker ha ARG che è possibile utilizzare qui

FROM ubuntu:14.04 

MAINTAINER Karl Morrison 

ARG myVarHere 

RUN do-something-here myVarHere 

E poi costruire utilizzando --build-arg:

docker build --build-arg myVarHere=value 
+4

Per coloro che hanno problemi con args costruire, quanto sopra è in gran parte corretto, tuttavia gli argomenti sono accessibili come variabili di ambiente nei comandi RUN. Puoi vedere la documentazione su questo [qui] (https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables---build-arg) e [qui] (https : //docs.docker.com/engine/reference/builder/#environment-replacement). Il comando RUN sopra sarebbe quindi: 'Esegui do-something-here $ myVarHere' –