在运行docker镜像时,docker build-arg值在控制台上不显示

我创build了Dockerfile所示的Dockerfile

 FROM ubuntu MAINTAINER ravat CMD echo "Hello" ARG jam_url ENV jam_url=$jam_url ENTRYPOINT echo "This is, $jam_url" ENV name Ravat Tailor ENTRYPOINT echo "Hello, $name" 

我用下面的docker build命令构build镜像:

 docker build -t dockerdemo --build-arg jam_url=mydomain . 

之后,我运行该图像:

 docker run dockerdemo 

并获得以下输出:

你好,Ravat裁缝

我的问题是:为什么jam_urlHello不打印到控制台?

一些东西:

  1. 运行图像时只使用最后的ENTRYPOINT指令。 如果有多个,则select最后一个。 https://docs.docker.com/engine/reference/builder/#entrypoint

  2. CMD也是一样https://docs.docker.com/engine/reference/builder/#cmd如果有一个CMD和ENTRYPOINT指令,它会selectENTRYPOINT指令。

这将做你想要实现的:

FROM ubuntu ARG jam_url ENV jam_url=$jam_url ENV name Ravat Tailor ENTRYPOINT echo "This, $jam_url\nHello $name"