Gitlab reconfigure报错Mixlib::ShellOut::ShellCommandFailed ruby_block

Gitlab reconfigure报错Mixlib::ShellOut::ShellCommandFailed ruby_block

报错信息如下:

================================================================================
    Error executing action `create` on resource 'storage_directory[/data/git-data]'
================================================================================
    
    Mixlib::ShellOut::ShellCommandFailed
    ------------------------------------
    ruby_block[directory resource: /data/git-data] (gitlab::gitlab-rails line 36) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
    ---- Begin output of stat --printf='%U' $(readlink -f /data/git-data) ----
    STDOUT:
    STDERR: stat: 缺少操作数
    Try 'stat --help' for more information.
    ---- End output of stat --printf='%U' $(readlink -f /data/git-data) ----
    Ran stat --printf='%U' $(readlink -f /data/git-data) returned 1

大概意思就是/data/git-data这个目录的权限问题

背景说明

我在gitlab的配置文件中,改过默认储存位置为/data/git-data

而这个/data目录是使用nfs挂载群晖的一个共享文件夹,nfs权限已经设置为rw,sync,no_subtree_check,no_root_squash,所以理论不存在nfs共享的权限问题

报错信息分析

$(readlink -f /data/git-data)返回空

确定是否权限缺失

使用当前用户执行指令:

stat --printf=’%U’ $(readlink -f /data/git-data/)

如果有输出,则切换用户后继续执行:

# 切换到git用户
sudo su git
# 测试权限
stat --printf=’%U’ $(readlink -f /data/git-data/)

如果出现以下内容,则为权限缺失:

stat: 缺少操作数
Try `stat --help’ for more information.

解决方案

将父文件夹授予权限

chmod +x /data

最后执行gitlab-ctl reconfigure就成功了

评论区
头像
文章目录