你好,我在设置dockerFile时遇到问题。我想说我是docker下的新手。 这是Docker版本
C:\>docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:12:48 2018
OS/Arch: windows/amd64
Experimental: false
Orchestrator: swarm`
Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.24)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:21:42 2018
OS/Arch: windows/amd64
Experimental: false
我创建了一个docker镜像,在其中复制了可执行文件。我设法通过启动在容器中运行.exe
。目前,我想使用dockerFile自动执行操作。我的映像称为bt1: version1
,它基于microsoft / Windowsservercore。
这是我的dockerFile。
目标是启动一个容器,然后在内部修改文件test.xml,然后启动应用程序BT_simulator.exe。
FROM bt1:version1
WORKDIR "/BTsimulatorV1.1/release"
RUN powershell.exe
RUN "$doc = [xml](Get-Content /BTsimulatorV1.1/release/test.xml)
&& $doc.parameters.connection.port = " "
&& $doc.parameters.connection.ipAddress = " "
&& $doc.parameters.Tool_EEPROM.Serial_Number = " "
&& $doc.save("/BTsimulatorV1.1/release/test.xml")
&& BT_simulator.exe
我不必达到预期的行为。你能帮我吗?
答案 0 :(得分:3)
不应在Dockerfile中对xml文件进行操作。在映像构建期间,Dockerfile仅运行一次。 您需要的是ENTRYPOINT脚本,它将执行文件操作并启动exe。
从RUN powershell.exe开始的所有内容均应删除。该脚本应放入.ps脚本中,并添加到映像中。然后用ENTRYPOINT调用它。