[英].Net core docker build with multiple projects
Net core 项目,我这里有很多 webapi、业务层和其他一些层。 下面是文件夹结构。
主要解决方案
- 业务层
- 数据层
- 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.