是否允许在CMD指令中使用Docker ARG

时间:2016-02-22 18:15:09

标签: docker docker-compose

我有一个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的{​​{1}}似乎没有得到扩展。在我CMD之后。

以下是检查显示的内容:

docker-compose up

1 个答案:

答案 0 :(得分:46)

问题是args只能在构建时使用,而CMD正在运行时执行。我想现在唯一能达到你想要的方法是在Dockerfile中用MASTER_NAME值设置一个环境变量。

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