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

AWS Ubuntu上部署的GitLab Docker Runner注册成功但无法执行作业

错误根因

你配置的Runner执行器为docker+machine,该执行器的作用是基于Docker Machine自动创建弹性CI任务节点,需要填写[runners.machine]段的完整配置才能正常运行。你当前配置中该段的MachineDriver、MachineName等必填参数全部为空,因此触发missing Machine options报错,执行器无法初始化,作业无法分配运行资源。

解决方案

根据你的实际使用场景选择对应处理方式即可:

场景1:无需弹性扩缩容,仅需要单实例Docker执行器(绝大多数普通用户适用)

你注册Runner时选错了执行器,修改为普通docker执行器即可解决:

  • 打开配置文件/srv/gitlab-runner/config/config.toml,做两处修改:
    • 将executor = "docker+machine"替换为executor = "docker"
    • 删除整个空的[runners.machine]配置段
  • 重启Runner容器让配置生效:
    docker restart gitlab-runner
  • 重启后验证Runner状态:
    docker exec gitlab-runner verify
    操作完成后再触发CI作业即可正常运行。

场景2:确实需要使用docker+machine实现AWS EC2弹性节点扩缩容

你需要补全[runners.machine]段的必填配置:

  • 先确认Runner宿主机已安装Docker Machine以及AWS EC2驱动
  • 补全[runners.machine]配置,参考示例如下,需根据你的实际AWS资源修改对应参数:
[runners.machine]
  IdleCount = 1
  IdleTime = 1800
  MachineDriver = "amazonec2"
  MachineName = "gitlab-ci-machine-%s"
  MachineOptions = [
    "amazonec2-access-key=你的AWS访问密钥ID",
    "amazonec2-secret-key=你的AWS秘密访问密钥",
    "amazonec2-region=AWS区域",
    "amazonec2-vpc-id=对应VPC ID",
    "amazonec2-subnet-id=对应子网ID",
    "amazonec2-security-group=Runner节点安全组名称",
    "amazonec2-instance-type=EC2实例规格",
    "amazonec2-ami=对应区域的兼容AMI ID",
  ]
  • 配置修改完成后重启Runner容器生效,查看日志确认没有相关报错即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 03:09:01