从主机的Powershell脚本中运行Docker容器中的Powershell脚本

5

我有一个 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 is not the correct command to run a script. You should use & "C:\inetpub\wwwroot\addApplication.ps1" - arco444
问题是...当它执行倒数第二个命令时,它启动了容器会话,并且在我退出会话之前没有执行最后一个命令...我想在容器会话中运行最后一个命令...而不是在主机上执行。 - Usama Saleem
1
那就不要交互式运行。尝试使用 docker exec website powershell -command "C:\inetpub\wwwroot\addApplication.ps1" - arco444
谢谢您的快速回复。它起作用了... - Usama Saleem
1个回答

6
不要使用 -ti 标志启动交互式会话,而是通过 docker exec 命令直接执行脚本。
docker exec website powershell -command "C:\inetpub\wwwroot\addApplication.ps1"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接