De acuerdo con la documentación , es posible definir múltiples argumentos para el indicador --build-arg , pero no puedo averiguar cómo. Intenté lo siguiente:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 number_of_replicas=2 --no-cache .=> Esto devuelve un error.
También probé:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5,number_of_replicas=2 --no-cache . => Esto establece una variable, number_of_shards , al valor "5,number_of_replicas=2"
¿Alguna idea de cómo puedo definir múltiples argumentos?
Use --build-arg con cada argumento.
Si está pasando dos argumentos, agregue --build-arg con cada argumento como:
docker build \ -t essearch/ess-elasticsearch:1.7.6 \ --build-arg number_of_shards=5 \ --build-arg number_of_replicas=2 \ --no-cache .La respuesta anterior de pl_rock es correcta, lo único que agregaría es esperar el ARG dentro del Dockerfile; de lo contrario, no tendrá acceso a él. Así que si estás haciendo
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache .Luego, dentro del Dockerfile, debe agregar
ARG number_of_replicas ARG number_of_shardsMe estaba encontrando con este problema, así que espero ayudar a alguien (a mí mismo) en el futuro.
Si desea utilizar la variable de entorno durante la compilación. Digamos establecer nombre de usuario y contraseña.
username= Ubuntu password= swed24swDockerfile
FROM ubuntu:16.04 ARG SMB_PASS ARG SMB_USER # Creates a new User RUN useradd -ms /bin/bash $SMB_USER # Enters the password twice. RUN echo "$SMB_PASS\n$SMB_PASS" | smbpasswd -a $SMB_USERComando terminal
docker build --build-arg SMB_PASS=swed24sw --build-arg SMB_USER=Ubuntu . -t IMAGE_TAG