码头工人镜像构建卡住了

时间:2019-09-09 05:22:04

标签: windows docker containers

我需要在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上正常工作。

1 个答案:

答案 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