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

如何在nektos/act本地GitHub Runner中使用本地镜像无需docker.io?

关于nektos/act的三个常见问题解答

1. 在nektos/act本地GitHub Runner环境下,如何引用本地Platform(-P)镜像且无需依赖docker.io?

直接通过-P参数将GitHub Runner标签映射到本地已存在的镜像即可,无需从docker.io拉取。具体操作如下:

  • 命令行直接指定:运行act时添加-P <runner-tag>=<local-image-name>:<tag>,例如本地有my-custom-runner:latest镜像,对应GitHub的ubuntu-latest runner,执行:
    act -P ubuntu-latest=my-custom-runner:latest
    
  • 持久化配置:在项目根目录创建.actrc文件,添加映射规则,避免每次命令行输入:
    -P ubuntu-latest=my-custom-runner:latest
    -P windows-latest=my-local-windows-runner:2022
    

确保本地镜像已存在(可通过docker images验证),act会直接使用本地镜像,不会请求docker.io。

2. 如何通过nektos/act运行本地或非Docker镜像?

运行本地镜像

通过-P参数将工作流中的runs-on标签映射到本地镜像即可:

  1. 工作流中指定自定义runner标签,例如:
    jobs:
      build:
        runs-on: my-local-runner
        steps: ...
    
  2. 运行act时映射到本地镜像,同时加上--pull=false强制使用本地镜像:
    act -P my-local-runner=my-built-image:v1 --pull=false
    

运行非Docker.io仓库的镜像

直接指定完整镜像仓库路径即可,例如镜像存储在私有仓库:

act -P ubuntu-latest=registry.example.com/my-team/runner:latest

确保本地Docker已配置好对应仓库的访问权限(如登录私有仓库),act会直接从指定仓库拉取或使用本地已缓存的该仓库镜像。

3. 默认情况下nektos/act会尝试登录docker.io拉取远程镜像,能否使用本地缓存的镜像?

可以,通过以下方式强制act使用本地缓存的镜像,避免拉取:

  • 命令行添加--pull=false参数:
    act --pull=false
    
  • 持久化配置:在.actrc文件中添加:
    --pull=false
    
  • 设置环境变量:
    export ACT_PULL=false
    

启用该设置后,act会优先检查本地是否存在对应runner标签的镜像,存在则直接使用;若本地无对应镜像,act会报错而非尝试从docker.io拉取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:18:32