Gitlab:运行独角兽的问题,Resque with Passenger/Nginx

Posted

技术标签:

【中文标题】Gitlab:运行独角兽的问题,Resque with Passenger/Nginx【英文标题】:Gitlab: Problems running Unicorn, Resque with Passenger/Nginx 【发布时间】:2012-12-19 17:41:19 【问题描述】:

我在全新的 Ubuntu (10.04) 上安装了 Gitlab,它几乎可以正常工作。 Gitlab 可以通过 HTTP 访问,我可以通过 git 向服务器推送/拉取数据。但是,缺少一件事,活动提要没有更新。所以我认为git钩子有问题。我完全遵循Gitlab 的安装过程,除了我想使用Passenger 来运行nginx 以部署多个应用程序。

我正在运行sudo -u gitlab -H bundle exec rake gitlab:env:info RAILS_ENV=production 以查看一切是否设置正确,但它说Redis 没有运行。 ps aux 说,redis-server 起来了。所以它不是 git 钩子。 Gitlab docu 说,重启 gitlab 服务来解决这个问题。在这种情况下,我收到一个错误,我认为这是我需要解决的问题:

$ sudo /etc/init.d/gitlab restart
Error, unicorn not running!

我的问题是,我该如何解决这个问题?如何运行独角兽,我以为 gitlab 服务会启动它?我没有使用 Nginx 吗?在我开始重新安装整个东西之前没有使用Passenger,我想我可以提前在这里问这个问题。

【问题讨论】:

独角兽日志包含什么?查找任何日志文件以获取有关阻止 gitlab(尤其是 redis)启动的更多信息 好吧,redis 日志并没有说什么特别的东西。。Unicorn 日志在几天前有它的最后一个日志条目,并说,它无法通过套接字连接到 mysql 数据库。它正在运行,Gitlab 使用正确。也许我在某处缺少配置?独角兽配置没有什么特别之处...... 那么,如果这些日志没有更新,它在 nginx 端它不起作用。那边有日志吗? 同样的 mysql 错误,但几天前.. 这可以没问题,因为我一开始忘了启动 mysql.. 好的,我解决了这个问题。我发现,我的 nginx 和 mysql 服务在我的服务器重新启动后还没有启动,但是 gitlab 服务启动了。一旦我手动启动 nginx 或 mysql,gitlab 进程就死了。但我不知道为什么。 【参考方案1】:

mentioned 必须由 OP pabera 启动,nginxmysql 必须启动,GitLab 的其他组件(redisunicorn,现在是 sidekiq)才能正常运行。

官方/etc/init.d/gitlab is here。

我有我的own version of gitlabd (here),因为我管理sidekiq in my own script,我不需要以root 运行脚本。

你可以看到in this script所有服务的运行顺序:

ssh Apache 和/或 NGiNX mysql redis GitLab(将启动 unicorn 和 sidekiq)

【讨论】:

/gitlab/github: No such file or directory Error, unicorn not running! @FDisk 不确定您的意思。我的脚本基于 gitlab 的克隆,在 $HOME/gitlab/github 中制作,但它使用了 HOME 的特殊值:$H(对你来说应该是空的)。它并不意味着直接使用,除非您使用make_env.sh 构建所有环境(目标是在他/她选择的用户目录中编译 git/GitLab 所需的所有内容,因此$H 代表该目录)【参考方案2】:

有点像在黑暗中戳...

在 GitLab 安装.md 中的自述文件是状态:

"

启动您的 GitLab 实例:

sudo service gitlab start
# or
sudo /etc/init.d/gitlab restart

"

我做了第一个和第二个,得到了这个确切的错误。但是,我跳过了“或”并继续使用 Nginx 命令,它似乎可以工作。

希望这会有所帮助!

【讨论】:

以上是关于Gitlab:运行独角兽的问题,Resque with Passenger/Nginx的主要内容,如果未能解决你的问题,请参考以下文章

Resque作业,如何停止正在运行的作业

如何在 AWS Elastic Beanstalk 上使用 Resque 运行 Rails 后台作业?

Rails4:为啥 resque 工人不找工作

如何破坏由resque工人排队的工作?

Rails.root 在 Resque 作业期间指向生产中的错误目录

resque-web 作为独立的应用程序使用 rails api 监控工作人员