CMD 指令中是否允许 Docker ARG
Is Docker ARG allowed within CMD instruction
我有一个 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
扩展。在我 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}]}
问题是 args
只能在构建时使用,而 CMD
在 运行 时执行。我想现在实现你想要的唯一方法是在 Dockerfile 中设置一个环境变量 MASTER_NAME
值。
ARG MASTER_NAME
ENV MASTER_NAME ${MASTER_NAME}
CMD spark-submit --deploy-mode client --master ${MASTER_NAME}
我有一个 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
扩展。在我 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}]}
问题是 args
只能在构建时使用,而 CMD
在 运行 时执行。我想现在实现你想要的唯一方法是在 Dockerfile 中设置一个环境变量 MASTER_NAME
值。
ARG MASTER_NAME
ENV MASTER_NAME ${MASTER_NAME}
CMD spark-submit --deploy-mode client --master ${MASTER_NAME}