将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 mvcapp .
成功构建,但是当我尝试运行docker run -i -p 5004:5004 -t mvcapp
时,我收到以下错误:
System.DllNotFoundException:libdl at(包装器托管到本机) 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图像但收效甚微。 Mac OS X是否有特殊步骤才能实现这一目标?
编辑:我应该补充一点,运行相同的入口点命令dnx -p project.json kestrel
确实有效,我可以成功访问localhost:5000。
答案 0 :(得分:1)
我在Ubuntu 15.04上遇到了同样的问题。 我也尝试在Dockerfile中添加“ENV RUNTIME_PACKAGES libunwind8 gettext libssl-dev libcurl3-dev zlib1g”,但它不起作用。 根据{{3}},似乎之前的版本在beta7之前工作正常。
我发现我使用了错误的码头图片“microsoft / aspnet:1.0.0-beta7”。在我完成以下步骤后,它运行良好。