.Net核心docker构建有多个项目



Net核心项目和我在这里有很多webapi、业务层和其他层。下面是文件夹结构。

主要解决方案

  1. 业务层
  2. 数据层
  3. Web API层3.1 MyDocker文件

下面是我的docker文件。

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
COPY ["Enrichment.WebApi/Enrichment.WebApi.csproj", "Enrichment.WebApi/"]
COPY ["Enrichment.Facade/Enrichment.Facade.csproj", "Enrichment.Facade/"]
COPY ["Enrichment.Saga/Enrichment.Saga.csproj", "Enrichment.Saga/"]
COPY ["Enrichment.BusinessModel/Enrichment.BusinessModel.csproj", "Enrichment.BusinessModel/"]
RUN dotnet restore "Enrichment.WebApi/Enrichment.WebApi.csproj"
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "Enrichment.WebApi.dll"]

当我运行docker build-t enrichment.webapi时,我得到了低于输出的结果

Sending build context to Docker daemon  230.8MB
Step 1/16 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
---> 9a88f73dec65
Step 2/16 : WORKDIR /app
---> Using cache
---> 9b50f1fc6721
Step 3/16 : COPY ["Enrichment.WebApi/Enrichment.WebApi.csproj", "Enrichment.WebApi/"]
COPY failed: stat /var/lib/docker/tmp/docker-builder437963979/Enrichment.WebApi/Enrichment.WebApi.csproj: no such file or directory

我不明白为什么我会犯以上错误。路径看起来不正确,但我不明白什么才是正确的路径。有人能帮我理解这里的任何问题吗。如有任何帮助,我们将不胜感激。非常感谢。

Step 9/16 : COPY *.csproj ./ COPY failed: no source files were specified

这是因为.dockerignore文件忽略了csproj。请注意下面的.dockerignore的内容,除obj/Docker/publish/*obj/Docker/empty之外的任何内容都将被忽略。

*
!obj/Docker/publish/*
!obj/Docker/empty/

将其包含在您的码头文件中

# build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 
WORKDIR /app
COPY --from=build-env /app/out ./

最新更新