J'ai un Dockerfile où un ARG
est utilisé dans l'instruction CMD
:
ARG MASTER_NAME
CMD spark-submit --deploy-mode client --master ${MASTER_URL}
L'argument est passé via docker-compose:
spark:
build:
context: spark
args:
- MASTER_URL=spark://master:7077
Cependant, le ARG
ne semble pas être développé pour CMD
. Après je docker-compose up
.
Voici ce qu'inspecte montre:
docker inspect -f "{{.Name}} {{.Config.Cmd}}" $(docker ps -a -q)
/spark {[/bin/sh -c spark-submit --deploy-mode client --master ${MASTER_URL}]}
Le fait est que args
ne peut être utilisé qu'au moment de la construction, et que le CMD
s'exécute au moment de l'exécution. Je suppose que la seule approche maintenant pour atteindre ce que vous voulez consiste à définir une variable d'environnement dans le Dockerfile avec le MASTER_NAME
valeur.
ARG MASTER_NAME
ENV MASTER_NAME ${MASTER_NAME}
CMD spark-submit --deploy-mode client --master ${MASTER_NAME}