簡體   English   中英

.Net 核心 docker 構建與多個項目

[英].Net core docker build with multiple projects

Net core 項目,我這里有很多 webapi、業務層和其他一些層。 下面是文件夾結構。

主要解決方案

  1. 業務層
  2. 數據層
  3. Web API 層 3.1 MyDockerFile

下面是我的 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 richment.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的內容, .dockerignore obj/Docker/publish/*obj/Docker/empty以外的任何內容。

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

將此包含在您的 dockerfile 中

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM