Rae*_*lyn 2 processor docker .net-core
我正在使用 docker 构建和运行两项服务,一项是 .net core 网站,另一项是 .net core 处理器。我的网站已经启动并且运行得很好。但是,当我尝试运行处理器时,收到以下错误消息:
\n\n\n\n\n无法执行,因为找不到指定的命令或文件。可能的原因包括:
\n\n\n
\n- \n
您拼错了内置的 dotnet 命令。
- \n
您打算执行 .NET Core 程序,但 dotnet-chores.processor.dll 不存在。
- \n
您打算运行全局工具,但在 PATH 上找不到具有此名称的以 dotnet 为前缀的可执行文件。
dotnet publish命令生成了一个名为“chores.processor.dll”的 dll(大小写相同)我的处理器dockerfile:
\n\nFROM mcr.microsoft.com/dotnet/core/sdk:3.0.100 AS build\nCOPY /src /all/src\n\nWORKDIR /all/src\nRUN dotnet build -c Release -o /app\nRUN dotnet publish --no-restore -c Release -o /app\n\n# FROM mcr.microsoft.com/dotnet/core/aspnet:3.0\nWORKDIR /app\n# COPY --from=build /app .\nEXPOSE 80\nENTRYPOINT ["dotnet", "chores.processor.dll"]\nRun Code Online (Sandbox Code Playgroud)\n\n处理器 csproj:
\n\n<Project Sdk="Microsoft.NET.Sdk">\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3.0</TargetFramework>\n <RootNamespace>Chores.Processor</RootNamespace>\n </PropertyGroup>\n <ItemGroup>\n <PackageReference Include="Dapper" Version="2.0.30" />\n <PackageReference Include="MySqlConnector" Version="0.59.2" />\n </ItemGroup>\n</Project>\nRun Code Online (Sandbox Code Playgroud)\n\n网站csproj:
\n\n<Project Sdk="Microsoft.NET.Sdk.Web">\n <PropertyGroup>\n <TargetFramework>netcoreapp3.0</TargetFramework>\n </PropertyGroup>\n <ItemGroup>\n <PackageReference Include="Dapper" Version="2.0.30" />\n <PackageReference Include="MySqlConnector" Version="0.59.2" />\n </ItemGroup>\n</Project>\nRun Code Online (Sandbox Code Playgroud)\n\n我觉得奇怪的是,错误消息似乎正在寻找dotnet-chores.processor.dll; 为什么它的前缀是 \xe2\x80\x9cdotnet-\xe2\x80\x9d?
如果有人对我可以做些什么来进一步调试这个有任何建议,我将不胜感激。
\n找不到 Chores.processor.dll,因为正确的名称是Chores.Processor.dll - Linux区分大小写。所以:
ENTRYPOINT [“dotnet”,“Chores.Processor.dll”]
或者
CMD dotnet ./Chores.Processor.dll
该错误消息具有误导性,因为它添加了破折号。
| 归档时间: |
|
| 查看次数: |
8369 次 |
| 最近记录: |