用init.d脚本启动Gitlab(gentoo)

时间:2013-07-02 21:13:23

标签: bundle gitlab gentoo

我使用本指南为用户gitlab(rvm ruby​​ python)创建了ruby环境: http://wiki.gentoo.org/wiki/GitLab

cat /etc/init.d/gitlab

GITLAB_BASE=/home/gitlab/gitlab
GITLAB_USER=gitlab

depend() {
        need net redis
}

start() {
        ebegin "Starting gitlab unicorn server"
    start-stop-daemon --start \
            --chdir "${GITLAB_BASE}" \
            --user "${GITLAB_USER}" \
            --pidfile "${GITLAB_BASE}/tmp/pids/unicorn.pid" \
            --exec bundle -- exec unicorn_rails -c "${GITLAB_BASE}/config/unicorn.rb" -E                     production -D
    eend $?
    ebegin "Starting gitlab sidekiq"
    start-stop-daemon --start \
            --chdir "${GITLAB_BASE}" \
            --user "${GITLAB_USER}" \
            --pidfile "${GITLAB_BASE}/tmp/pids/sidekiq.pid" \
            --exec bundle -- exec rake sidekiq:start RAILS_ENV=production
    eend $?
}

stop() {
    ebegin "Stopping gitlab sidekiq"
    start-stop-daemon --stop \
            --chdir "${GITLAB_BASE}" \
            --user "${GITLAB_USER}" \
            --pidfile "${GITLAB_BASE}/tmp/pids/sidekiq.pid"
    eend $?
    ebegin "Stopping gitlab unicorn server"
    start-stop-daemon --stop \
            --chdir "${GITLAB_BASE}" \
            --user "${GITLAB_USER}" \
            --pidfile "${GITLAB_BASE}/tmp/pids/unicorn.pid"
    eend $?
}%                                                                        

当我开始它时,我看到:

 * Starting gitlab unicorn server ...
 * start-stop-daemon: bundle does not exist                                                                                                                                                          
 * Starting gitlab sidekiq ...
 * start-stop-daemon: bundle does not exist                                                                                                                                                          
 * ERROR: gitlab failed to start

我有用户gitlab的捆绑包。我做错了什么?

2 个答案:

答案 0 :(得分:3)

这里有两个问题。首先,rvm通常只由用户的shell加载,并且这里没有调用shell。其次,bundle也不会在PATH中。要解决这两个问题,假设这是一个每用户的rvm安装,试试这个......

... --exec /home/gitlab/.rvm/bin/rvm -- default do bundle exec ...

作为旁注,您不应该将unicorn_rails与Rails 3应用程序一起使用。只需使用普通的独角兽。

答案 1 :(得分:0)

另外,将GITLAB_BASE=/home/gitlab/gitlab更改为GITLAB_BASE=/home/git/gitlab。这个init脚本来自GitLab 4.2。在5.0以后,用户从gitlab更改为git。