Докеры ARG допускаются в рамках CMD-инсталляции
У меня есть Dockerfile, где ARG
используется в инструкции CMD
:
ARG MASTER_NAME
CMD spark-submit --deploy-mode client --master ${MASTER_URL}
Арг передается через docker-compose:
spark:
build:
context: spark
args:
- MASTER_URL=spark://master:7077
Однако ARG
, похоже, не расширяется для CMD
. После того, как я docker-compose up
.
Вот что показывает инспектор:
docker inspect -f "{{.Name}} {{.Config.Cmd}}" $(docker ps -a -q)
/spark {[/bin/sh -c spark-submit --deploy-mode client --master ${MASTER_URL}]}
Ответы
Ответ 1
Дело в том, что args
можно использовать только во время сборки, а CMD
выполняется во время выполнения. Я полагаю, что единственный подход для достижения того, что вы хотите, - это установить переменную окружения в файле Docker с значением MASTER_NAME
.
ARG MASTER_NAME
ENV MASTER_NAME ${MASTER_NAME}
CMD spark-submit --deploy-mode client --master ${MASTER_NAME}