我需要在vm上安装了docker桌面的Windows 10上为Windows应用程序构建Windows docker映像,但是当运行此应用程序的安装时构建过程停滞时。日志看起来像下面的东西,
PS C:\docker> docker image build . -t app
Sending build context to Docker daemon 144.1MB
Step 1/6 : FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8
---> 9b87edf03093
Step 2/6 : COPY . /app
---> ac4b1124d856
Step 3/6 : WORKDIR /app
---> Running in cf4bd2345d26
Removing intermediate container cf4bd2345d26
---> d4f28097afd9
Step 4/6 : RUN .\ELSA1.0_2.6.6.243.exe
---> Running in b9356f975aa6
(And the process is stuck for several hours here and is terminated by me)
码头工人文件是
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 # this is a base image because asp.net 3.5 is a prerequisite for the app
COPY . /app
WORKDIR /app
RUN .\ELSA1.0_2.6.6.243.exe # I am stuck here!
我试图像这样在基本图像中做某事,但似乎我无能为力
PS C:\docker> docker container run -it
mcr.microsoft.com/dotnet/framework/aspnet:4.8
Service 'w3svc' has been stopped
Service 'w3svc' started
是否有调试此问题的好主意?顺便说一下,安装程序可以在Windows 10上正常工作。
答案 0 :(得分:0)
永远不要在RUN
语句中执行不终止的命令。我在Docker构建日志中看到您通过exe
命令启动了RUN
文件。这将使您的docker构建过程陷入困境,并等待SIGINT
。就像您执行RUN npm start
一样,将会挂起构建过程。
在入口点或CMD中添加可执行文件。
在这种情况下,另一件事可能是问题
在Windows上使用CMD的注意事项
在Windows上,必须使用CMD指令中指定的文件路径 正斜杠或已转义的反斜杠\。以下是 有效的CMD指令:
dockerfile
# exec form
CMD ["c:\\Apache24\\bin\\httpd.exe", "-w"]
# shell form
CMD c:\\Apache24\\bin\\httpd.exe -w
您可以进一步了解Window CMD here
但是,以下格式没有适当的斜杠将不起作用:
dockerfile
CMD c:\Apache24\bin\httpd.exe -w