【问题标题】:Can't build ASP.Net container无法构建 ASP.Net 容器
【发布时间】:2017-08-29 14:29:53
【问题描述】:
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 基础映像已经包含一个入口点应用程序 监视 IIS 万维网发布服务的状态 (W3SVC)。

【问题讨论】:

  • 您的 docker 文件是错误的,因为它依赖于您没有的构建文件夹中 ServiceMonitor.exe' 的存在。从一开始就自己制作整个DockerFile,不要依赖样本等,它们很快就会过时

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


【解决方案1】:

改用这个 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

【讨论】:

  • microsoft/aspnet 到底是什么? 4.6? 4.7?我需要 4.6
  • 这是最新的,所以可能是 4.7。如果您愿意,可以使用标签 4.6.2:FROM microsoft/aspnet:4.6.2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多