Asp.net Mac OS X Docker基线aspnet错误:找不到libdl
将boot2docker和Microsoft的基线aspnet映像与基本的Asp.net Mac OS X Docker基线aspnet错误:找不到libdl,asp.net,macos,docker,asp.net-core,Asp.net,Macos,Docker,Asp.net Core,将boot2docker和Microsoft的基线aspnet映像与基本的yo aspnet项目一起使用: FROM microsoft/aspnet:1.0.0-beta7 COPY project.json /app/ WORKDIR /app RUN ["dnu", "restore"] COPY . /app EXPOSE 5000 ENTRYPOINT ["dnx", "-p", "project.json", "kestrel"] 我可以使用docker build-t mv
yo aspnet
项目一起使用:
FROM microsoft/aspnet:1.0.0-beta7
COPY project.json /app/
WORKDIR /app
RUN ["dnu", "restore"]
COPY . /app
EXPOSE 5000
ENTRYPOINT ["dnx", "-p", "project.json", "kestrel"]
我可以使用docker build-t mvcapp成功构建。
,但是当我尝试运行docker run-I-p 5004:5004-t mvcapp时,我得到以下错误:
System.DllNotFoundException:libdl at(包装器管理为本机)
Microsoft.AspNet.Server.Kestrel.Networking.PlatformApis/linuxapi:dlopen
(字符串,int)at
Microsoft.AspNet.Server.Kestrel.Networking.PlatformApis+linuxapi.LoadLibrary
(System.String dllToLoad)[0x00000]英寸:0英寸
Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Load(System.String
dllToLoad)[0x00000]位于:0处
Microsoft.AspNet.Server.Kestrel.kestrengine..ctor(ILibraryManager
libraryManager,IApplicationShutdown应用程序关闭服务)[0x00000]中
:0
我尝试了一些不同的基本aspnet图像,但收效甚微。Mac OS X是否有特殊的步骤来实现这一点
编辑:我应该补充一点,运行相同的entrypoint命令dnx-p project.json kestrel
确实有效,我可以成功访问localhost:5000。我在Ubuntu 15.04上也有同样的问题。
我还尝试在Dockerfile中添加“ENV RUNTIME_PACKAGES libunwind8 gettext libssl dev libcurl3 dev zlib1g”,但不起作用。
据了解,beta7之前的版本似乎运行良好
我发现我使用了错误的docker映像“microsoft/aspnet:1.0.0-beta7”。在我完成以下步骤后,它工作得很好
通过以下方式获得正确的docker图像:
docker pull microsoft/aspnet:1.0.0-beta7-coreclr
修改dockerfile:
使用“来自microsoft/aspnet:1.0.0-beta7-coreclr”而不是“来自microsoft/aspnet:1.0.0-beta7”,并添加“环境运行时_包libunwind8、gettext、libssl开发、libcurl3开发、zlib1g”
Follow,“libdl未找到”不会出现。我认为beta7的dockerfile中缺少一些操作。