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 启动,nginx
和 mysql
必须启动,GitLab 的其他组件(redis
、unicorn
,现在是 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的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Elastic Beanstalk 上使用 Resque 运行 Rails 后台作业?