【问题标题】:RUN Powershell Script in Docker Container From Host Powershell Script从主机 Powershell 脚本在 Docker 容器中运行 Powershell 脚本
【发布时间】:2017-12-15 08:08:12
【问题描述】:

我在主机中有一个 powershell 脚本,它复制一些文件并启动容器。

#Copy File
docker cp "D:\addApplication.ps1" website:/inetpub/wwwroot/

#Start Container
docker start website
Write-Host 'Process has started'

#Execute Container
docker exec -ti website powershell

#Run Script
Invoke-Expression "C:\inetpub\wwwroot\addApplication.ps1"

第二个命令执行得很好,但最后一个命令只会在我退出容器会话并返回错误时执行(文件未找到,这是因为它在主机上找到了该文件)

问题:无论如何我可以从脚本中执行容器会话中的命令。或者在任何进程中执行脚本中的任何命令(困惑)

感谢任何帮助。

谢谢

【问题讨论】:

  • Invoke-Expression 不是运行脚本的正确命令。你应该使用& "C:\inetpub\wwwroot\addApplication.ps1"
  • 问题是......当它执行倒数第二个命令时,它会启动容器会话并且在我退出会话之前没有执行最后一个命令......我想在容器中运行最后一个命令会话...不在主机中
  • 那就不要交互运行了。试试docker exec website powershell -command "C:\inetpub\wwwroot\addApplication.ps1"
  • 感谢您的快速回复。它工作......

标签: powershell docker


【解决方案1】:

不要使用-ti 标志来启动交互式会话,只需通过docker exec 命令直接执行脚本

docker exec website powershell -command "C:\inetpub\wwwroot\addApplication.ps1"

【讨论】:

    猜你喜欢
    • 2021-02-25
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 2019-12-02
    相关资源
    最近更新 更多