我有一个Dockerfile,其中ARG在CMD指令中使用了:
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-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值设置环境变量。
args
MASTER_NAME
ARG MASTER_NAME ENV MASTER_NAME ${MASTER_NAME} CMD spark-submit --deploy-mode client --master ${MASTER_NAME}