Gitlab 中a job fails on the Prepare environment stage问题的分析和解决

93 阅读1分钟

当使用某些 GitLab 运行器(如 shell、parallels、virtualbox 或 ssh 执行器)时,会传递 --login 参数,这会导致加载 shell 配置文件(如 .bashrc.bash_logout 等)。如果作业在准备环境阶段失败,可能是由于这些配置文件中的脚本导致的,尤其是 .bash_logout 文件中的问题。

一个常见的问题是 .bash_logout 中存在尝试清除控制台的脚本,例如使用 /usr/bin/clear_console。这可能会影响运行器的正常运行。要解决这个问题,需要注释掉 /home/gitlab-runner/.bash_logout 中的问题部分,然后重新启动管道。

例如,如果 .bash_logout 包含以下内容:

if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

将其注释掉:

# if [ "$SHLVL" = 1 ]; then
#     [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
# fi

修改后,重新启动管道以检查问题是否解决。