2012-03-14 36 views
2

最近我將其中一個rails應用程序移到了新配置的EC2 ubuntu實例中。運行與舊版服務器相同的ruby版本,apache與乘客。但我仍然無法使用Capistrano將應用程序部署到服務器。仍然我不知道這個錯誤,所以我在這裏粘貼我的部署日誌。另外這裏是我的Capistrano recipe。感謝有人在這裏找到問題。Capistrano失敗 - 沒有當前目錄/ bundle:未找到/回滾

$ cap deploy:setup 
    triggering start callbacks for `deploy:setup' 
    * executing `uploads:register_dirs' 
    * executing `deploy:setup' 
    * executing "mkdir -p /home/ubuntu/webapps/myapp-name /home/ubuntu/webapps/myapp-name/releases /home/ubuntu/webapps/myapp-name/shared /home/ubuntu/webapps/myapp-name/shared/system /home/ubuntu/webapps/myapp-name/shared/log /home/ubuntu/webapps/myapp-name/shared/pids /home/ubuntu/webapps/myapp-name/shared/uploads" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'mkdir -p /home/ubuntu/webapps/myapp-name /home/ubuntu/webapps/myapp-name/releases /home/ubuntu/webapps/myapp-name/shared /home/ubuntu/webapps/myapp-name/shared/system /home/ubuntu/webapps/myapp-name/shared/log /home/ubuntu/webapps/myapp-name/shared/pids /home/ubuntu/webapps/myapp-name/shared/uploads' 
    command finished in 696ms 
    * executing "chmod g+w /home/ubuntu/webapps/myapp-name /home/ubuntu/webapps/myapp-name/releases /home/ubuntu/webapps/myapp-name/shared /home/ubuntu/webapps/myapp-name/shared/system /home/ubuntu/webapps/myapp-name/shared/log /home/ubuntu/webapps/myapp-name/shared/pids /home/ubuntu/webapps/myapp-name/shared/uploads" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'chmod g+w /home/ubuntu/webapps/myapp-name /home/ubuntu/webapps/myapp-name/releases /home/ubuntu/webapps/myapp-name/shared /home/ubuntu/webapps/myapp-name/shared/system /home/ubuntu/webapps/myapp-name/shared/log /home/ubuntu/webapps/myapp-name/shared/pids /home/ubuntu/webapps/myapp-name/shared/uploads' 
    command finished in 205ms 

上面並沒有創造current目錄由於某種原因,但我可以看到releasesshared目錄。加上共享目錄裏面我有一個名爲uploads

$ cap deploy 
    triggering start callbacks for `deploy' 
    * executing `uploads:register_dirs' 
    * executing `deploy' 
    * executing `deploy:update' 
** transaction: start 
    * executing `deploy:update_code' 
    executing locally: "git ls-remote . master" 
    command finished in 5ms 
    * getting (via checkout) revision a7e86283b743de666354349c56c66f80a35a6997 to /tmp/20120314153001 
    executing locally: git clone -q . /tmp/20120314153001 && cd /tmp/20120314153001 && git checkout -q -b deploy a7e86283b743de666354349c56c66f80a35a6997 
    command finished in 1879ms 
    compressing /tmp/20120314153001 to /tmp/20120314153001.tar.gz 
    executing locally: tar czf 20120314153001.tar.gz 20120314153001 
    command finished in 4323ms 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
** sftp upload /tmp/20120314153001.tar.gz -> /tmp/20120314153001.tar.gz 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sftp upload /tmp/20120314153001.tar.gz -> /tmp/20120314153001.tar.gz 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sftp upload /tmp/20120314153001.tar.gz -> /tmp/20120314153001.tar.gz done 
    * sftp upload complete 
    * executing "cd /home/ubuntu/webapps/myapp-name/releases && tar xzf /tmp/20120314153001.tar.gz && rm /tmp/20120314153001.tar.gz" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'cd /home/ubuntu/webapps/myapp-name/releases && tar xzf /tmp/20120314153001.tar.gz && rm /tmp/20120314153001.tar.gz' 
    command finished in 2353ms 
    * executing `deploy:finalize_update' 
    * executing "chmod -R g+w /home/ubuntu/webapps/myapp-name/releases/20120314153001" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'chmod -R g+w /home/ubuntu/webapps/myapp-name/releases/20120314153001' 
    command finished in 294ms 
    * executing "rm -rf /home/ubuntu/webapps/myapp-name/releases/20120314153001/log /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/system /home/ubuntu/webapps/myapp-name/releases/20120314153001/tmp/pids &&\\\n  mkdir -p /home/ubuntu/webapps/myapp-name/releases/20120314153001/public &&\\\n  mkdir -p /home/ubuntu/webapps/myapp-name/releases/20120314153001/tmp" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'rm -rf /home/ubuntu/webapps/myapp-name/releases/20120314153001/log /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/system /home/ubuntu/webapps/myapp-name/releases/20120314153001/tmp/pids &&\ 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] mkdir -p /home/ubuntu/webapps/myapp-name/releases/20120314153001/public &&\ 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] mkdir -p /home/ubuntu/webapps/myapp-name/releases/20120314153001/tmp' 
    command finished in 211ms 
    * executing "ln -s /home/ubuntu/webapps/myapp-name/shared/system /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/system" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'ln -s /home/ubuntu/webapps/myapp-name/shared/system /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/system' 
    command finished in 193ms 
    * executing "ln -s /home/ubuntu/webapps/myapp-name/shared/log /home/ubuntu/webapps/myapp-name/releases/20120314153001/log" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'ln -s /home/ubuntu/webapps/myapp-name/shared/log /home/ubuntu/webapps/myapp-name/releases/20120314153001/log' 
    command finished in 189ms 
    * executing "ln -s /home/ubuntu/webapps/myapp-name/shared/pids /home/ubuntu/webapps/myapp-name/releases/20120314153001/tmp/pids" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'ln -s /home/ubuntu/webapps/myapp-name/shared/pids /home/ubuntu/webapps/myapp-name/releases/20120314153001/tmp/pids' 
    command finished in 191ms 
    * executing "ln -s /home/ubuntu/webapps/myapp-name/shared/uploads /home/ubuntu/webapps/myapp-name/releases/20120314153001/uploads" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'ln -s /home/ubuntu/webapps/myapp-name/shared/uploads /home/ubuntu/webapps/myapp-name/releases/20120314153001/uploads' 
    command finished in 191ms 
    * executing "find /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/images /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/stylesheets /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/javascripts -exec touch -t 201203141535.01 {} ';'; true" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] env TZ=UTC sh -c 'find /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/images /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/stylesheets /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/javascripts -exec touch -t 201203141535.01 {} '\'';'\''; true' 
    command finished in 2057ms 
    triggering after callbacks for `deploy:finalize_update' 
    * executing `uploads:symlink' 
    * executing "rm -rf /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/uploads" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'rm -rf /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/uploads' 
    command finished in 192ms 
    * executing "ln -nfs /home/ubuntu/webapps/myapp-name/shared/uploads /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/uploads" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'ln -nfs /home/ubuntu/webapps/myapp-name/shared/uploads /home/ubuntu/webapps/myapp-name/releases/20120314153001/public/uploads' 
    command finished in 204ms 
    * executing `bundle:install' 
    * executing "ls -x /home/ubuntu/webapps/myapp-name/releases" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'ls -x /home/ubuntu/webapps/myapp-name/releases' 
    command finished in 188ms 
    * executing "cd /home/ubuntu/webapps/myapp-name/releases/20120314153001 && bundle install --gemfile /home/ubuntu/webapps/myapp-name/releases/20120314153001/Gemfile --path /home/ubuntu/webapps/myapp-name/shared/bundle --deployment --quiet --without development test" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'cd /home/ubuntu/webapps/myapp-name/releases/20120314153001 && bundle install --gemfile /home/ubuntu/webapps/myapp-name/releases/20120314153001/Gemfile --path /home/ubuntu/webapps/myapp-name/shared/bundle --deployment --quiet --without development test' 
*** [err :: ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh: 
*** [err :: ec2-184-73-xx-xxx.compute-1.amazonaws.com] bundle: not found 
*** [err :: ec2-184-73-xx-xxx.compute-1.amazonaws.com] 
    command finished in 189ms 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /home/ubuntu/webapps/myapp-name/releases/20120314153001; true" 
    servers: ["ec2-184-73-xx-xxx.compute-1.amazonaws.com"] 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] executing command 
    [ec2-184-73-xx-xxx.compute-1.amazonaws.com] sh -c 'rm -rf /home/ubuntu/webapps/myapp-name/releases/20120314153001; true' 
    command finished in 435ms 
failed: "sh -c 'cd /home/ubuntu/webapps/myapp-name/releases/20120314153001 && bundle install --gemfile /home/ubuntu/webapps/myapp-name/releases/20120314153001/Gemfile --path /home/ubuntu/webapps/myapp-name/shared/bundle --deployment --quiet --without development test'" on ec2-184-73-xx-xxx.compute-1.amazonaws.com 

回答

2

總之另一個目錄,它看起來像捆命令沒有在服務器上找到。

您可以確認它是通過SSH'ing安裝到服務器中的'ubuntu'(部署文件中指定的用戶)並嘗試運行bundle。如果您收到命令未找到錯誤,則可能未安裝捆綁器或「ubuntu」用戶沒有權限。

如果上述命令有效,那麼當cap嘗試執行其命令時,您的環境變量可能不會被加載。我必須在部署腳本中指定以下環境變量:

default_environment['PATH'] = '/usr/local/lib/ruby/gems/1.9.1/bin:$PATH' 
default_environment['GEM_PATH']= '/usr/local/lib/ruby/gems/1.9.1' 

顯然,請調整路徑以適合您的服務器的配置。

我希望這有助於!

+0

謝謝你 - 這個伎倆。基本上'bundle'命令工作正常。問題出在環境配置上,正如你所說的那樣,當capistrano執行它的命令時它不會被加載。我已經用解決方案更新了要點。非常感謝您的幫助。 - https://gist.github.com/2037413 – randika 2012-03-15 19:23:11

+1

如果你不知道你的路徑,>>> printenv – 2012-03-22 00:35:49

+0

printenv在哪裏?這些線應該放在要求'bundler/capistrano'之前? – juanpastas 2013-04-29 20:56:34

相關問題