c# - 如何解决多依赖 Web 应用程序的依赖问题?
问题描述
如何在恢复依赖项 docker build 时解决未找到的问题?我得到了这个问题。我的文件结构如下所示。
请关注我的 Dockerfile:
[解决方案] 'xxxxx' (3 个项目) | +-- [xxxxx.Web] | | | +--- xxxxx.Web.csproj (这个项目包含 Docker 文件) | +-- [xxxx.xxxx 服务器] | | | +--- xxxxxx.xxxxserver.csproj | +-- [xxxxxx.xxxxApi.Client] | +--- xxxxx.xxxxApi.Client.csproj 1. xxxxx.Web.csproj -> API 2. xxxxx.xxxxserver/xxxxx.xxxxserver.csproj -> 身份服务器 3. xxxxx.xxxxApi.Client/xxxxx.xxxxApi.Client.csproj -> xxxxApi.Client
Dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["xxxxx.Web.csproj", "./"]
COPY ["common.props", "./"]
RUN dotnet restore "xxxxx.Web.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "xxxxx.Web.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "xxxxx.Web.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "xxxxx.Web.dll"]
common.props:
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>1.0.0</Version>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
<AbpProjectType>app</AbpProjectType>
</PropertyGroup>
</Project>
解决方案
在我看来,您复制文件的路径错误。而且您还需要复制 * .sln 文件。首先检查路径。
根据对问题的描述,在我看来,像这样制作 Dockerfile 会更正确:
首先,将 Dockerfile 与 sln 文件齐平。
试试这个
COPY *.sln .
COPY xxxxx.Web/*.csproj ./xxxxx.Web/
COPY xxxxx.xxxserver/*.csproj ./xxxxx.xxxserver/
COPY xxxxx.xxxxApi.Client/*.csproj ./xxxxx.xxxxApi.Client/
RUN dotnet restore
COPY . .
WORKDIR /app/xxxxx.Web
RUN dotnet publish -c release -o /app --no-restore
upd:如果您没有 *.sln 文件,只需将 WORKDIR 更改为您的启动项目,如下所示:
COPY xxxxx.Web/*.csproj ./xxxxx.Web/
COPY xxxxx.xxxserver/*.csproj ./xxxxx.xxxserver/
COPY xxxxx.xxxxApi.Client/*.csproj ./xxxxx.xxxxApi.Client/
WORKDIR /app/xxxxx.Web
RUN dotnet restore
推荐阅读
- haskell - Haskell 代码打印出整数列表,但不打印字符列表
- css - 水平滚动时子菜单不跟随主菜单
- r - R. lapply 多项式测试到数据帧列表
- python - pycrypto AES CBC
- java - 禁止为方法参数传递某些值
- math - 在我的汇编程序中,我试图计算方程 (((((2^0 + 2^1) * 2^2) + 2^3) * 2^4) + 2^5)
- python - 公式Python中的负数
- r - 将日期变量与日期列表进行比较
- python - 熊猫滚动应用跳过某些值
- laravel - 在 laravel 通知上获取错误 routeNotificationFor()