docker运行和variablesreplace
我有一个名为image_name
的脚本中的variables
image_name="my-app"
我试图把这个variables传递给一个docker容器,如下所示:
docker build -t $image_name . docker run --rm --name $image_name -e "app_dir=${image_name}" $image_name
但是这个variables没有设置,在docker build的上下文中是空白的
这是下面的Dockerfile的一个片段:
.... RUN echo dir is $app_dir ....
这是下面的构build输出的一个片段:
.... Step 2 : RUN echo dir is $app_dir ---> Running in db93a939d701 dir is ---> c9f5e2a657d5 Removing intermediate container db93a939d701 ....
任何人都知道如何做variables替代?
请注意,您正在使用Dockerfile
的variables。 该variables将在构build时进行评估( docker build
),因此您需要在此时传递其值。 这可以通过--build-arg
参数来实现。
改变你的例子,这将是:
docker build --build-arg app_dir=${image_name} -t $image_name . docker run --rm --name $image_name $image_name
这可以使用docker build
命令的build-arg
参数来实现
有关示例,请参阅: https : //github.com/docker/docker/issues/6822#issuecomment-168170031