【问题标题】:How to run Powershell script in DockerFile?如何在 DockerFile 中运行 Powershell 脚本?
【发布时间】:2021-06-23 03:07:37
【问题描述】:

我在 dockerfile 中尝试了以下这些命令,但它没有运行脚本。那么还有其他命令可以在 dockerfile 中运行 ps 脚本吗?

添加 Windowss.ps1。

CMD powershell .\Windowss.ps1;

【问题讨论】:

    标签: docker dockerfile


    【解决方案1】:

    要运行 PS1 脚本文件,您可以执行以下操作:

    SHELL ["cmd", "/S", "/C"]    
    RUN powershell -noexit "& ""C:\Chocolatey\lib\chocolatey.0.10.8\tools\chocolateyInstall.ps1"""
    

    你也可以这样做:

    SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
    WORKDIR C:\
    RUN .\install_pfx.ps1
    

    【讨论】:

    • @shad - 请接受这个作为答案 - 这是您提出的关于如何从 docker 文件运行 powershell 脚本的问题的答案。它可能无法解决您在容器中运行服务的问题,但这不是您的问题!谢谢!
    【解决方案2】:

    您可以使用RUN

    您可以使用 RUN poweshell 命令

    RUN powershell -Command Add-WindowsFeature Web-Server
    

    参考https://docs.microsoft.com/en-us/dotnet/standard/containerized-lifecycle-architecture/design-develop-containerized-apps/set-up-windows-containers-with-powershell

    【讨论】:

    • 我怎么能从 docker Run 中做到这一点?
    【解决方案3】:

    是的,还有另一个命令。 ENTRYPOINT ["executable", "param1", "param2"] 是一个命令,根据documentation,它将使容器在其启动时运行可执行文件。它可以与CMD一起使用。

    【讨论】:

    【解决方案4】:

    我有一个类似的问题,我通过使用 shell 指令解决了。

    FROM mcr.microsoft.com/windows/servercore:20H2 AS PS
    SHELL ["powershell"]
    RUN Write-Host "Hello from docker! Today is $(Get-Date)"
    

    编辑:刚刚注意到上面的答案比我的命令要好一些。点赞! https://stackoverflow.com/a/48804143/190831

    【讨论】:

      猜你喜欢
      • 2016-04-05
      • 2020-08-20
      • 2021-08-26
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2011-01-03
      相关资源
      最近更新 更多