powershell - DockerFile的一些问题

标签 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

我不必实现预期的行为。你能帮我吗?

最佳答案

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

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

关于powershell - DockerFile的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50931033/

相关文章:

docker - 我可以在 docker-compose.yml 文件中设置/获取变量吗?

docker - 如何在Docker上为Nginx代理使用其他端口?

regex - Powershell Replace中的Escape Tilde

powershell - 从命令行在 Windows 10 中获取文件类型关联的最佳方法?

分离模式下 exec 命令的 Docker 输出

postgresql - Liquibase 'includeAll'标签在databasechangelog表中为同一变更集生成2行

docker - 通过docker访问的Swagger UI不起作用

command-line - 自定义 powershell 提示正在清除 $lastexitcode

regex - Powershell正则表达式中的变量

docker - 'npm 错误!作为 docker 构建的一部分运行 npm install 时的自签名证书