无法在 Dockerfile 路径中评估符号链接: lstat <路径> 没有这个文件或目录

5
我正在尝试在Win10 2004版本上的Ubuntu WSL2 (v.20.04)中使用docker来运行tacotron2,Docker已安装并运行,我可以成功运行hello world。当我尝试运行docker build -t tacotron-2_image docker/时,出现以下错误:unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/nate/docker/Dockerfile: no such file or directory。我曾经在bash中导航到安装了docker的位置(/var/lib/docker),并在那里尝试运行它,但是得到了相同的错误。在所有情况下,我都创建了一个名为docker的目录,但仍然遇到相同的错误。这里有一个几乎相同的问题, 但没有人回答它。

我该如何让这个工作?


1
如果您执行 ls -l /home/nate/docker/Dockerfile,您会得到什么? - Philippe
ls: cannot access '/home/nate/docker/Dockerfile': No such file or directory - HerrimanCoder
3个回答

3
这里所述,错误可能与"符号链接"无关,而是与缺少位于Tacotron-2/docker文件夹中的Dockerfile有关。 docker build确实提到:

docker build命令从Dockerfile和"上下文"构建Docker映像。
一个构建的上下文是指位于指定的PATH或URL中的文件集合。

在您的情况下,应该在您克隆Rayhane-mamah/Tacotron-2存储库的路径中执行docker build -t tacotron-2_image docker/
为了确保,您可以指定上述Dockerfile,但那应该是没有必要的:
docker build -t tacotron-2_image -f docker/Dockerfile docker/

或者:

cd
git clone https://github.com/Rayhane-mamah/Tacotron-2
cd Tacotron-2
cd docker
docker build -t tacotron-2_image .

我以为我执行的这些命令是用于安装它的

要构建镜像,需要源代码(要克隆的存储库)。


VonC:我执行了你的第一个示例,但是出现了“无法准备上下文:无法在Dockerfile路径中评估符号链接:lstat /home/nate/docker/Dockerfile:没有那个文件或目录”的错误。至于你的第二个示例,我该如何找到Tacotron所在的位置?为什么会有Tacotron,因为我认为它还没有被安装。我认为我正在执行这些命令是为了安装它。?? - HerrimanCoder
@HerrimanCoder 一切都取决于我在答案中最初没有提到的一步骤(现已编辑):您克隆Tacotron-2存储库。 - VonC
谢谢VonC。你帮我走得更远了。我已经发布了一个后续问题,希望你能看一下:https://stackoverflow.com/questions/63440113/how-to-install-and-run-tacotron2-on-ubuntu-wsl - HerrimanCoder

2
如果你的 Dockerfile 文件名使用了大写字母 F,请将其重命名。

0

对于像我这样由于符号链接而无法正常工作的人

只需将文件复制到一个尚未进行符号链接的新目录中,并从那里构建您的镜像

仅当您确认您的 Dockerfile 不是 dockerfile .Dockerfile,DockerFile 或 dockerfile.txt 时才需要执行此操作。

我的操作系统是基于 Ubuntu 的 elementary。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接