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

GitLab Runner Shell执行器报错:/usr/bin/bash未找到求助

解决GitLab Runner Shell执行器提示“shell /usr/bin/bash not found”问题

问题描述

在Oracle Cloud的Ubuntu虚拟机上配置GitLab Runner 15.11.0,使用Shell执行器时作业反复报错:

Running with gitlab-runner 15.11.0 (xxx)
  on bob_the_builder_aarch64_shell xxx, system ID: xxx
Preparing the "shell" executor 00:09
ERROR: Preparation failed: shell /usr/bin/bash not found
Will be retried in 3s ...
ERROR: Preparation failed: shell /usr/bin/bash not found
Will be retried in 3s ...
ERROR: Preparation failed: shell /usr/bin/bash not found
Will be retried in 3s ...
ERROR: Job failed (system failure): shell /usr/bin/bash not found
WARNING: Preparation failed: shell /usr/bin/bash not found

已验证系统中/usr/bin/bash路径存在,尝试过改用/bin/bash、/usr/bin/sh,也尝试过用sudo运行GitLab Runner并使用/etc/gitlab-runner/config.toml配置相同设置,问题依旧。当前config.toml配置如下:

concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "bob_the_builder_aarch64_shell"
  url = "https://gitlab.com/"
  id = xxx
  token = "xxx"
  token_obtained_at = 2023-05-08T01:17:42Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "shell"
  shell = "/usr/bin/bash"
  [runners.cache]
    MaxUploadedArchiveSize = 0

排查与解决方案

  • 检查GitLab Runner用户的环境权限
    GitLab Runner默认使用gitlab-runner用户运行,需确认该用户能访问/usr/bin/bash。执行以下命令验证:

    sudo -u gitlab-runner ls -l /usr/bin/bash
    sudo -u gitlab-runner /usr/bin/bash --version
    

    如果报错,说明该用户无执行权限,可通过修改权限或调整用户组解决:

    sudo chmod +x /usr/bin/bash
    sudo usermod -aG sudo gitlab-runner # 仅在必要时添加sudo权限
    
  • 简化shell配置
    无需指定完整路径,GitLab Runner会自动查找系统默认shell。修改config.toml中的shell字段为bash即可:

    [[runners]]
      # 其他配置保持不变
      shell = "bash"
    

    修改后重启GitLab Runner服务:

    sudo gitlab-runner restart
    
  • 验证GitLab Runner安装架构匹配
    虚拟机为aarch64架构,需确认安装的GitLab Runner是对应架构版本。执行以下命令检查:

    gitlab-runner --version
    arch
    

    如果版本架构不匹配(比如安装了amd64版本),需卸载现有版本,重新下载安装aarch64版本:

    sudo gitlab-runner uninstall
    sudo rm -rf /usr/local/bin/gitlab-runner
    curl -L https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64 -o /usr/local/bin/gitlab-runner
    sudo chmod +x /usr/local/bin/gitlab-runner
    sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
    sudo gitlab-runner start
    
  • 检查系统PATH环境变量
    确认gitlab-runner用户的PATH包含/usr/bin。执行以下命令查看:

    sudo -u gitlab-runner echo $PATH
    

    如果缺少,可修改gitlab-runner用户的.bashrc或.profile文件添加:

    sudo -u gitlab-runner echo 'export PATH=$PATH:/usr/bin' >> ~gitlab-runner/.bashrc
    

内容的提问来源于stack exchange,提问作者marcell-janovszki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:30:13