Mac OS X Docker基线aspnet错误:未findlibdl

使用boot2docker和微软的基本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 mvcapp .成功docker build -t mvcapp . ,但是当我尝试运行docker run -i -p 5004:5004 -t mvcapp我得到以下错误:

System.DllNotFoundException:libdl at(wrapper managed-to-native)Microsoft.AspNet.Server.Kestrel.Networking.PlatformApis / LinuxApis:dlopen(string,int)at Microsoft.AspNet.Server.Kestrel.Networking.PlatformApis + LinuxApis.LoadLibrary (System.String dllToLoad)[0x00000] in:0 at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Load(System.String dllToLoad)[0x00000] in:0 at Microsoft.AspNet.Server.Kestrel.KestrelEngine .. ctor(ILibraryManager libraryManager,IApplicationShutdown appShutdownService)[0x00000] in:0 …

我已经尝试了几个不同的基础aspnet图像,但很less成功。 是否有一个特殊的步骤,以使Mac OS X得到这个工作?

编辑:我应该添加,运行相同的入口点命令dnx -p project.json kestrel不起作用,我可以成功地访问localhost:5000。

我在Ubuntu 15.04上遇到同样的问题。 我也尝试在Dockerfile中添加“ENV RUNTIME_PACKAGES libunwind8 gettext libssl-dev libcurl3-dev zlib1g”,但它不起作用。 根据Running-ASP.NET-5-beta4-in-Docker-with-DNX-runtime ,在beta7工作正常之前,它似乎是以前的版本。

我发现我使用错误的docker图像“微软/ aspnet:1.0.0-beta7”。 我做了以下步骤后,它工作正常。

  1. 通过:docker pull microsoft / aspnet:1.0.0-beta7-coreclr获取正确的docker图像
  2. 修改dockerfile:使用“FROM microsoft / aspnet:1.0.0-beta7-coreclr”而不是“FROM microsoft / aspnet:1.0.0-beta7”并添加“ENV RUNTIME_PACKAGES libunwind8,gettext,libssl-dev,libcurl3-dev,zlib1g “