如何为dotnet应用程序创建docker镜像



我有一个dotnet项目,当我运行dotnet时,我正在尝试将该dotnet项目容器化。为此,我创建了如下Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
COPY bin/Release/netcoreapp3.1/publish/ App/
WORKDIR /App
EXPOSE 5000
CMD ["dotnet", "MediatorAgent.dll"]

在创建docker镜像之前,我确实运行了dotnet publish -c Release。现在,当我尝试运行这个docker映像时,我得到了以下错误

未处理的异常。System.DllNotFoundException:无法加载共享库"indy"或其依赖项之一。为了帮助诊断加载问题,请考虑设置LD_DEBUG环境变量:libindy:无法打开共享对象文件:没有这样的文件或目录

我正在按照Containerize.NET Core应用程序的说明创建docker映像。

如何为dotnet应用程序创建docker镜像?

好吧,你做到了。

可能出了问题的是,被称为indy的DLL没有复制到App文件夹中。

由于您正在复制数据,请验证它是否包含在bin/Release/netcoreapp3.1/publish的原始版本中

确保bin/Release/目录与Dockerfile所在的目录相同。

您可以指定要生成的项目.csproj或.sln。

你可以看看下面的dockerfile,希望能对你有所帮助。

FROM microsoft/aspnetcore-build AS builder
WORKDIR /source
COPY projectname.csproj .
RUN dotnet restore
RUN dotnet build projectname.csproj -c Release -o /app/build
COPY . .
RUN dotnet publish -c Release -o /app/publish
FROM microsoft/aspnetcore
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "projectname.dll"]

相关内容

  • 没有找到相关文章

最新更新