我在名为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
....
任何人都知道如何进行变量替换?
答案 0 :(得分:1)
使用build-arg
命令
docker build
参数可以实现这一点
请参阅:https://github.com/docker/docker/issues/6822#issuecomment-168170031以获取示例
答案 1 :(得分:1)
请注意,您正在使用docker build
中的变量。该变量将在构建时(--build-arg
)进行评估,因此您需要在此时传递其值。这可以通过docker build --build-arg app_dir=${image_name} -t $image_name .
docker run --rm --name $image_name $image_name
param来实现。
更改您的示例,它将是:
{{1}}