gpt4 book ai didi

bash - Docker Run 和变量替换

转载 作者:行者123 更新时间:2023-11-29 09:06:06 25 4
gpt4 key购买 nike

我在名为 image_name 的脚本中有一个变量

image_name="my-app"

我正在尝试将此变量传递给 docker 容器,如下所示:

docker build -t $image_name .
docker run --rm --name $image_name -e "app_dir=${image_name}" $image_name

但是这个变量没有设置并且在 docker build 的上下文中是空白的

这是来自以下 Dockerfile 的片段:

....

RUN echo dir is $app_dir

....

这是下面构建输出的一个片段:

....

Step 2 : RUN echo dir is $app_dir
---> Running in db93a939d701
dir is
---> c9f5e2a657d5
Removing intermediate container db93a939d701

....

有人知道如何进行变量替换吗?

最佳答案

请注意,您正在使用 Dockerfile 中的变量。该变量将在构建时进行评估 (docker build),因此您需要在那个时候传递它的值。这可以通过 --build-arg 参数来实现。

改变你的例子,它将是:

docker build --build-arg app_dir=${image_name} -t $image_name .
docker run --rm --name $image_name $image_name

关于bash - Docker Run 和变量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35555190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com