c# - 解决方案 .NET 中 Docker 多个项目的问题
问题描述
这是我的文件夹的结构
ROOT FOLDER
|--- Login.sln
|--- Login.Api
-- Login.WebApi.csproj
|-- Domain
-- Domain.csproj
|-- BusinessLogic
|-- BusinessLogic.csproj
|---DataAccess
|-- DataAccess.csproj
|-- BusinessLogic.csproj
|---Dockerfile
这是我当前的 dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY . .
RUN dotnet restore "/Login/Login.WebApi.csproj"
WORKDIR "/src/."
COPY . .
RUN dotnet build "Login.WebApi.csproj" -c Release -o /app/build
FROM build as publish
RUN dotnet publish "Login.WebApi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV ASPNETCORE_URLS http://*:PORT_NUMBER
ENTRYPOINT ["dotnet", "Login.WebApi.dll"]
现在无法正常工作,因为它无法进行还原。我不知道这是否是正确的方法
解决方案
您无需进行还原;dotnet build无论如何都会这样做。另外,我建议您构建解决方案而不是单个项目。最后你不需要双引号。试试这个:
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY . .
RUN dotnet build Login.sln -c Release -o /app/build
FROM build as publish
RUN dotnet publish Login.Api/Login.Api.csproj -c Release -o /app/publish
我认为 dockerfile 的其余部分还可以。
还要仔细检查目录的名称,它们与您的文件夹结构不匹配。
推荐阅读
- javascript - 使用屏蔽 url nodeJS 重定向到新选项卡
- image-processing - 处理错误 ArrayIndexOutOfBoundsException: 32
- c++ - 为什么使用调试进行构建但发布没有?
- python - 什么可能导致 Flask 服务器在只服务一个请求后变得无响应?
- reactjs - 使用多个数据数组作为状态
- scala - 动态选择列
- apache-spark - 通过 pyspark 以 RCFile 格式保存数据的问题
- sql - 显示顶部表格中不匹配的记录
- time - 如何通过 PTP 1588 协议从大师(而不是同步我的机器)获得时间偏移?
- php - 编辑结帐字段 woocommerce