gpt4 book ai didi

bash - 将数据写入 Dockerfile 中的文件

转载 作者:IT老高 更新时间:2023-10-28 21:22:53 27 4
gpt4 key购买 nike

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

#!/usr/bin/env bash
printf "blah
blah
blah
blah\n" | sudo tee file.txt

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

ADD script.sh .
RUN chmod 755 script.sh && ./script.sh
ADD file.txt .

当我执行上述操作时,我只是收到一个关于 ADD file.txt . 命令的错误:

lstat file.txt: no such file or directory

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

最佳答案

当您 RUN chmod 755 script.sh && ./script.sh 时,它实际上会在 docker 容器 内部 执行此脚本(即:在 docker 层中)。

当您 ADD file.txt . 时,您正尝试从 docker 容器内的 local 文件系统添加文件(即:在新的 docker 层中)。

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

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

关于bash - 将数据写入 Dockerfile 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37976241/

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