将数据写入Dockerfile中的文件

pcs*_*ram 8 bash shell file-writing docker dockerfile

我有一个shell脚本script.sh,它将一些行写入文件:

#!/usr/bin/env bash
printf "blah 
blah 
blah 
blah\n" | sudo tee file.txt
Run Code Online (Sandbox Code Playgroud)

现在在我的Dockerfile中,我添加了这个脚本并运行它,然后尝试添加生成的file.txt:

ADD script.sh .
RUN chmod 755 script.sh && ./script.sh 
ADD file.txt . 
Run Code Online (Sandbox Code Playgroud)

当我执行上述操作时,我只是在引用该ADD file.txt .命令时出错:

lstat file.txt: no such file or directory

为什么docker找不到我的shell脚本生成的文件?我能在哪里找到它?

mic*_*ard 5

RUN chmod 755 script.sh && ./script.sh它实际上执行这个脚本里面的泊坞窗容器(即:在泊坞窗层).

当您ADD file.txt .尝试在docker容器内的本地文件系统上添加文件时(即:在新的docker层中).

你不能这样做,因为你的计算机上不存在file.txt.

事实上,你已经在docker中有了这个文件,试试看docker run --rm -ti mydockerimage cat file.txt你的内容会显示出来