【发布时间】: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