Docker 配置没有找到现有文件?

Docker configuration does not find existing file?

我尝试在 IntelliJ Rider 中配置 运行 一个 docker 文件。

在构建过程中,出现以下错误:

Step 7/17 : COPY ["src/No.Services/No.Gf/No.Gf.Api/No.Gf.Api.csproj", 
"src/No.Services/No.Gf/No.Gf.Api/"]
Error response from daemon: COPY failed: file not found in build context or excluded by .dockerignore: 
stat src\No.Services\No.Gf\No.Gf.Api\No.Gf.Api.csproj: file does not exist

文件就在路径指向的地方。它没有被排除在.dockerignore.

我在这里没有选择?

第 6 步是:

Step 6/17 : WORKDIR /src

也许这是向 much 添加了一个“/src”,在第 7 步中它最终在 /src/src/...?

中查找文件

我不知道你的物理目录层次结构,但我想说错误的原因可能是 Dockerfilecsproj 之间的原始相对路径。对于 csproj 位置,如 src/No.Services/No.Gf/...Dockerfile 必须与 src 文件夹处于同一级别,才能成功复制。

能否请您验证一下?

(如果您在项目之上使用典型的 dotnet 解决方案,在解决方案的根目录中设置 Dockerfile 可能会解决您的错误,因为它会尊重文件夹'层次结构。)

关于其他主题:

  • WORKDIR命令引用了容器中的工作目录(reference),所以,我想说这不是你出错的原因,因为它似乎,复制时,在其来源中找不到该文件。

  • 当复制到容器中成功后,它可能会在像src/src/No.Services/No.Gf/...这样的目录中,但这是在复制之后,在容器中。