【问题标题】:Docker build fails when project reference and nuget feed added添加项目引用和 nuget 提要时 Docker 构建失败
【发布时间】:2020-02-08 23:03:26
【问题描述】:

我是 docker 新手,我正在尝试在本地机器上创建 docker 映像/容器。如果我有一个没有任何项目参考和私有 nuget 提要的简单项目,它工作正常。添加项目引用和私有 nuget 提要后,当我执行 docker build(来自 src\Account\Account.host 文件夹)时,出现以下错误。

  • 因为找不到项目“/Shared/SharedComponent/SharedComponent.csproj”而跳过它。
  • 错误 NU1101:无法找到包。源中不存在具有此 ID 的包:nuget.org

我尝试对其进行修改,但复制文件时出现上下文错误。我的问题是: - 是否可以使用以下文件夹结构运行 docker build? - 如果我想坚持使用相同的文件夹结构,是否需要使用 docker compose? - 我有其他项目需要添加另一个 docker 文件,但我只是在测试一个似乎无法正常工作的项目。

项目文件夹结构

  • 共享

    ++ 共享组件

      +++ ShareComponent.csproj
    
      +++ Other files
    
  • 帐户

    ++账号.Host

      +++ Account.Host.csproj (SharedComponent.csproj reference added)
    
      +++ Dockerfile
    
      +++ Other files
    

Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["Account.Host.csproj", "./"]

RUN dotnet restore "./Account.Host.csproj"
COPY . .
RUN dotnet build "Account.Host.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Account.Host.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Account.Host.dll"]

【问题讨论】:

    标签: c# docker .net-core dockerfile


    【解决方案1】:

    Docker build 需要在构建时能够看到整个项目,因此它可以确定是否有任何文件已更改(除其他外)。

    你可能需要从项目的根目录运行docker build,并告诉它Dockerfile在哪里,像这样:

    docker build -t the_name_of_the_image -f Account/Account.Host/Dockerfile
    

    上面可能不太对,但是你发布的目录结构没有呈现正确:(

    【讨论】:

    • 感谢@OlympusMonds。我认为您的意思是“docker build -t the_name_of_the_image -f Account/Account.Host/Dockerfile”。当我从根文件夹运行时,它在“COPY [“Account.Host.csproj”,“./”]”上失败并抛出“stat /var/lib/docker/tmp/docker-builder087905431/Account.Host. csproj:没有这样的文件或目录”。当我将 dockerfile 更改为“COPY [“Account/Account.Host/Account.Host.csproj”,“./”]”时,它在 dotnet restore 行上出现相同的原始错误。即跳过项目“/Shared/SharedComponent/SharedComponent.csproj”,找不到它并且无法找到包。
    猜你喜欢
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2020-05-14
    相关资源
    最近更新 更多