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
就成功了
分别是哔哩哔哩序号35,小米运动序号2,米友社序号13,这个是同一个账号下运行的任务