我需要使用官方的PowerShell Core Docker映像来运行Docker容器并使其执行PowerShell脚本文件。
我知道可以使用Dockerfile和Docker构建完成此操作,但在这种情况下不能使用。
通过阅读文档,我想到了这一点,但是它似乎不起作用:
docker run -it --rm --entrypoint "/tmp/test.ps1" repo/powershell:latest
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"/tmp/test.ps1\": stat /tmp/test.ps1: no such file or directory": unknown.
ERRO[0001] error waiting for container: context canceled
错误似乎表明找不到文件,但是手动运行stat "/tmp/test.ps1"
时可以正常工作。
我觉得还应该指定二进制文件pwsh
,但找不到解决方法。
答案 0 :(得分:1)
docker run -it mcr.microsoft.com/powershell pwsh -c "Write-Host 'Hello, World'"
这会产生Hello, World
和mcr.microsoft.com/powershell
是Google返回的official PowerShell Core Docker image
此图像内部没有文件/tmp/test.ps1
。因此无法完全弄清楚repo/powershell:latest
里面的图像。
docker run -it --rm mcr.microsoft.com/powershell pwsh -c $(cat test.ps)
docker run -v /tmp/localdata:/tmp/containerdata -it --rm mcr.microsoft.com/powershell pwsh /tmp/containerdata/test.ps
假设您在主机/tmp/localdata
文件夹中,该文件夹包含带有test.ps
文本的Write-Host 'Hello, World!'
文件。
两种方法的结果都是Hello, World