You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地使用nektos/act运行GitHub Actions时pwsh shell执行报错排查

nektos/act 执行pwsh步骤报可执行文件不存在故障排查

故障表现

act可正常执行普通工作流,当步骤指定shell: pwsh时抛出如下错误:

🐳 docker exec cmd=[pwsh -command . /var/run/act/workflow/1.ps1] user= workdir=
| OCI runtime exec failed: exec failed: unable to start container process: exec: "pwsh": executable file not found in $PATH: unknown
[test-workflow/test_workflow_job] ❌ Failure - RUN PWSH TEST

复现用的工作流配置如下:

name: test-workflow

on:
  push:
  
jobs:
  test_workflow_job:
    runs-on: ubuntu-latest

    steps:

     - name: CHECKOUT THIS REPOSITORY
       uses: actions/checkout@v2

     - name: RUN PWSH TEST
       shell: pwsh
       run: Write-Host "test"

根因说明

该问题不是程序未修复的bug:

  • act默认拉取的精简版(slim)运行镜像为了控制体积,没有预装PowerShell环境,和GitHub官方托管的ubuntu-latest runner默认预装全量工具的情况不同。
  • 此前相关代码修复仅解决了act拼接pwsh执行命令的逻辑问题,不会自动给运行镜像补充缺失的依赖组件。

排查解决步骤

  • 优先替换全量运行镜像测试:执行act命令时追加参数-P ubuntu-latest=catthehacker/ubuntu:act-latest,该镜像预装了GitHub runner默认带的所有常用组件(包括pwsh),替换后可直接运行pwsh步骤。
  • 若需要继续使用精简镜像,在pwsh执行步骤前新增独立步骤,适配当前Ubuntu镜像版本安装PowerShell组件后再执行后续pwsh命令。
  • 调整配置后重新执行工作流,验证Write-Host "test"是否正常输出即可。

额外注意

使用act默认精简镜像时,除pwsh外,docker、dotnet、gcloud等官方runner默认预装的工具都可能出现「可执行文件找不到」的报错,遇到同类报错优先检查当前使用的镜像是否预装对应依赖,不要直接判定为程序bug。

内容的提问来源于stack exchange,提问作者jschleicher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:46:03