gitlab-rake assets:预编译RAILS_ENV =生产失败,出现权限错误

时间:2015-02-27 08:53:23

标签: gitlab

我在CentOS 7上安装了GitLab 7.7.2并成功安装。

现在我尝试以子目录样式运行GitLab,例如http://url/gitlab

我查看了这个文件并更改为此说明。 的/ opt / gitlab /嵌入/服务/ gitlab-导轨/配置

然后我预编译并出错。

# gitlab-rake assets:precompile RAILS_ENV=production
I, [2015-02-27T17:35:18.980208 #4864]  INFO -- : Writing /opt/gitlab/embedded/service/gitlab-rails/public/assets/authbuttons/github_32-199ebcd7adccbfe20068d39bfd57e6bf.png
rake aborted!
Errno::EACCES: Permission denied @ rb_sysopen - /opt/gitlab/embedded/service/gitlab-rails/public/assets/authbuttons/github_32-199ebcd7adccbfe20068d39bfd57e6bf.png+

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

我该怎么办?

3 个答案:

答案 0 :(得分:6)

This post描述了一个很好的解决方法。与user Perceval FARAMAZ suggests类似,我们可以打开权限暂时来编译新资产和已更改资产,然后再将其关闭。

通过使用ACL而不是标准位,这仅针对git用户,而不实际更改$(document).ready(function() { function updateTotal() { var total = 0; $('button.selected').each(function() { total += parseFloat($(this).val()); }); total += parseFloat($('select').val()); $('span.quote-price').text("£" + total.toFixed(2)); } $('button').click(function() { $(this).toggleClass('selected'); updateTotal(); }); $('select').change(updateTotal); $('.reset').click(function() { $('.selected').removeClass('selected'); $('select').val('0.00'); updateTotal(); }); }); 的所有权:

root:root

这适用于添加新图像以及更改现有资产。

答案 1 :(得分:3)

chmod -R 1777 /opt/gitlab/embedded/service/gitlab-rails/public/assets为我做了诀窍。

它为每个人设置完全读/写/执行的权限,并在' t'上设置粘滞位。 (没有人可以删除除root /文件所有者之外的目录,因此允许rake执行其中的操作。)

答案 2 :(得分:1)

首先,直接更改文件会导致在reconfigure之后重写文件。致电gitlab-rake时,您不必说明RAILS_ENVgitlab-rake包装器处理。

就相对url选项而言,现在还没有在omnibus包中实现。