【问题标题】:Docker configuration does not find existing file?Docker配置找不到现有文件?
【发布时间】:2021-01-08 18:57:37
【问题描述】:

我尝试在 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

也许这会增加一个“/src”,并且在第 7 步中它最终会在 /src/src/...中查找文件?

【问题讨论】:

    标签: docker dockerfile rider run-configuration


    【解决方案1】:

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

    您能验证一下吗?

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

    关于其他主题:

    • WORKDIR 命令指的是容器中的工作目录(reference),所以,我想说这不是你错误的原因,因为似乎在复制时,找不到文件在它的源代码中。

    • 复制到容器成功后,大概会在src/src/No.Services/No.Gf/...这样的目录下,但这是复制后,在容器内。

    【讨论】:

    • 谢谢,就是这样。我误解了上下文文件夹设置。只需将其设置为“。”。
    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2014-10-18
    • 2018-01-01
    相关资源
    最近更新 更多