Разрешен ли Docker ARG в CMD instrcution

у меня есть Dockerfile, где ARG используется CMD инструкция:

ARG MASTER_NAME
CMD spark-submit --deploy-mode client --master ${MASTER_URL}

arg передается через docker-compose:

  spark:
    build:
      context: spark
      args:
        - MASTER_URL=spark://master:7077
на ARG, похоже, не расширяется для CMD. После Того, Как Я ... --7-->.

вот, что осмотр показывает:

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 выполняется во время выполнения. Я думаю, что единственный подход сейчас для достижения того, что вы хотите, - это установка переменной среды в Dockerfile с помощью MASTER_NAME значение.

ARG MASTER_NAME
ENV MASTER_NAME ${MASTER_NAME}
CMD spark-submit --deploy-mode client --master ${MASTER_NAME}