DockerFile的一些问题

时间:2018-06-19 14:36:11

标签: powershell docker docker-compose dockerfile

你好,我在设置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

我不必达到预期的行为。你能帮我吗?

1 个答案:

答案 0 :(得分:3)

不应在Dockerfile中对xml文件进行操作。在映像构建期间,Dockerfile仅运行一次。 您需要的是ENTRYPOINT脚本,它将执行文件操作并启动exe。

从RUN powershell.exe开始的所有内容均应删除。该脚本应放入.ps脚本中,并添加到映像中。然后用ENTRYPOINT调用它。