无法构建ASP.Net容器

时间:2017-08-29 14:29:54

标签: c# asp.net docker dockerfile docker-windows

Windows 10 version 1607
Docker for Windows: Version 17.06.1-ce-win24 (13025)

我正在尝试使用the provided docs构建一个asp .net 4.6容器,但它无效。

我正在使用this provided dockerfile。我把它复制到我的一个asp .net解决方案的根目录。

我跑了这个命令:

$ docker build -t aspnet-site --build-arg site_root=/

这是输出

PS> docker build -t aspnet-site . --build-arg 'site_root=/'
Sending build context to Docker daemon  326.1MB
Step 1/6 : FROM microsoft/dotnet-framework:4.6.2
4.6.2: Pulling from microsoft/dotnet-framework
3889bb8d808b: Pull complete
9f5eeabe6154: Pull complete
Digest: sha256:c281f2c09c9446f1896806933013a350f19db8f5a009e633ebd9701c470de35b
Status: Downloaded newer image for microsoft/dotnet-framework:4.6.2
 ---> be84290c2315
Step 2/6 : SHELL powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';
 ---> Running in 1fd036b1b56e
 ---> 413164f1a97c
Removing intermediate container 1fd036b1b56e
Step 3/6 : RUN Add-WindowsFeature Web-Server;     Add-WindowsFeature NET-Framework-45-ASPNET;     Add-WindowsFeature Web-Asp-Net45;     Remove-Item -Recurse C:\inetpub\wwwroot\*
 ---> Running in 4b0e5751281b

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Common HTTP Features, Default Documen...
True    No             Success        {ASP.NET 4.6}
True    No             Success        {Application Development, ASP.NET 4.6,...


 ---> 9afab6bfa836
Removing intermediate container 4b0e5751281b
Step 4/6 : ADD ServiceMonitor.exe /
ADD failed: GetFileAttributesEx \\?\C:\WINDOWS\TEMP\docker-builder455754487\ServiceMonitor.exe: The system cannot find the file specified.

所以它在文档中说这个(所以我试着评论一下servicemonitor的东西并且它起作用了):

  

自从Dockerfile中没有必要指定ENTRYPOINT   microsoft / aspnet base image已包含入口点应用程序   监视IIS World Wide Web Publishing服务的状态   (W3SVC)。

1 个答案:

答案 0 :(得分:0)

请尝试使用此dockerfile。它将使用aspnet图像:

FROM microsoft/aspnet
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]

EXPOSE 80

RUN Remove-WebSite -Name 'Default Web Site'  
RUN New-Website -Name 'YourSiteName' -Port 80 -PhysicalPath 'C:\YourFolderName' -ApplicationPool '.NET v4.5'

ADD "LocalFolderPath" /YourFolderName