2013-03-03 2 views
0

производства Сервера: Ubuntu 12,04, Apache, Passenger, РВМ, Ruby 2, Rails 4, PostgresqlCapistrano колпачок развертывание: холодная ошибка

Я получаю эту ошибку после колпачка развёртывания: холодной (я изменил имена пользователей и IP) :

* 2013-03-04 12:17:56 executing `deploy:cold' 
    * 2013-03-04 12:17:56 executing `deploy:update' 
** transaction: start 
    * 2013-03-04 12:17:56 executing `deploy:update_code' 
    updating the cached checkout on all servers 
    executing locally: "git ls-remote [email protected]:user/captest.git master" 
    command finished in 4655ms 
    * executing "if [ -d /home/user/apps/captest/shared/cached-copy ]; then cd /home/user/apps/captest/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 0ad1ab0c9e73b41959981a1415f71a42e80c0443 && git clean -q -d -x -f; else git clone -q [email protected]:user/captest.git /home/user/apps/captest/shared/cached-copy && cd /home/user/apps/captest/shared/cached-copy && git checkout -q -b deploy 0ad1ab0c9e73b41959981a1415f71a42e80c0443; fi" 
    servers: ["192.33.33.333"] 
    [192.33.333.333] executing command 
    command finished in 5870ms 
    copying the cached version to /home/user/apps/captest/releases/20130304111807 
    * executing "cp -RPp /home/user/apps/captest/shared/cached-copy /home/user/apps/captest/releases/20130304111807 && (echo 0ad1ab0c9e73b41959981a1415f71a42e80c0443 > /home/user/apps/captest/releases/20130304111807/REVISION)" 
    servers: ["192.33.333.333"] 
    [192.33.333.333] executing command 
    command finished in 122ms 
    * 2013-03-04 12:18:07 executing `deploy:finalize_update' 
    triggering before callbacks for `deploy:finalize_update' 
    * 2013-03-04 12:18:07 executing `deploy:assets:symlink' 
    * executing "rm -rf /home/user/apps/captest/releases/20130304111807/public/assets && mkdir -p /home/user/apps/captest/releases/20130304111807/public && mkdir -p /home/user/apps/captest/shared/assets && ln -s /home/user/apps/captest/shared/assets /home/user/apps/captest/releases/20130304111807/public/assets" 
    servers: ["192.33.333.333"] 
    ["192.33.333.333"] executing command 
    command finished in 134ms 
    * 2013-03-04 12:18:07 executing `bundle:install' 
    * executing "cd /home/user/apps/captest/releases/20130304111807 && bundle install --gemfile /home/user/apps/captest/releases/20130304111807/Gemfile --path /home/user/apps/captest/shared/bundle --deployment --quiet --without development test" 
    servers: ["192.33.333.333"] 
    [192.33.333.333] executing command 
** [out :: 192.33.333.333] sh: 1: 
** [out :: 192.33.333.333] bundle: not found 
** [out :: 192.33.333.333] 
    command finished in 110ms 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /home/user/apps/captest/releases/20130304111807; true" 
    servers: ["192.33.333.333"] 
    [192.33.333.333] executing command 
    command finished in 118ms 
failed: "sh -c 'cd /home/user/apps/captest/releases/20130304111807 && bundle install --gemfile /home/user/apps/captest/releases/20130304111807/Gemfile --path /home/user/apps/captest/shared/bundle --deployment --quiet --without development test'" on 192.33.333.333 

Я в основном следовал инструкциям эпизода railscasts «развертывание в vps». Это мой deploy.rb файл:

require "bundler/capistrano" 


server "192.33.333.333", :web, :app, :db, primary: true 

set :application, "captest" 
set :user, "user" 
set :deploy_to, "/home/#{user}/apps/#{application}" 
set :deploy_via, :remote_cache 
set :use_sudo, false 

set :scm, "git" 
set :repository, "[email protected]:user/#{application}.git" 
set :branch, "master" 

default_run_options[:pty] = true 
ssh_options[:forward_agent] = true 

after "deploy", "deploy:cleanup" # keep only the last 5 releases 

namespace :deploy do 
    task :start do; end 
    task :stop do; end 
    task :restart, roles: :app, except: {no_release: true} do 
    run "touch #{deploy_to}/current/tmp/restart.txt" 
    end 

    task :setup_config, roles: :app do 
    sudo "ln -nfs #{current_path}/config/apache.conf /etc/apache2/sites-available/#{application}" 
    run "mkdir -p #{shared_path}/config" 
    put File.read("config/database.example.yml"), "#{shared_path}/config/database.yml" 
    puts "Now edit the config files in #{shared_path}." 
    end 
    after "deploy:setup", "deploy:setup_config" 
end 

Я попытался установить пакет прямо с сервера, но не знаю где, потому что я запутался структуры приложения. Также попробовал «потребовать rvm/capistrano», но также получил ошибку.

+0

Просьба предоставить больше журналов. Все, что вы сказали, это просто «он не работает», не более: [ –

+0

Пакет не найден – crispychicken

+0

Да, обязательно нужно предоставить больше журналов. Пожалуйста, покажите нам все, что эта команда выводит –

ответ

0

Вы все еще не видите, что такое настоящая ошибка.

Если -v (для многословным) на хребтовой развёртывания: холодная команда не сказать вам реальную проблему, то SSH на сервер и выполнить команду: cd /home/user/apps/captest/releases/20130304111807 && bundle install --gemfile /home/user/apps/captest/releases/20130304111807/Gemfile --path /home/user/apps/captest/shared/bundle --deployment --quiet --without development test

Это звучит как ваш рубин окр может не быть правильно настроиться на сервере.

EDIT: На самом деле это может не сработать, если оно было удалено. У меня была аналогичная проблема, и я разрешил ее, вручную клонируя проект на мой производственный сервер и запуская установку пакета для отладки любых проблем.

+0

с -v Я получаю ту же ошибку: bundle not found. И если я запустил полную команду непосредственно на сервере, я получаю: никакого такого файла или каталога не найдено – crispychicken

+0

попробуйте 'chown -R my_path/apps/my_app'. У вас может не быть разрешения (содержимое папки может принадлежать, например, root). Разделите команды отдельно и запустите их самостоятельно, пока не столкнетесь с той же проблемой, что и у capistrano. – Bijan

0

Вам необходимо установить пакет на целевом сервере.

gem install bundler 

Обычно это единственный камень, который вам нужно установить таким образом, потому что он не может установить себя.

Эта сущность не совсем подходит для ваших нужд, но как я могу идти о развернув сервер рубин 2.0 Ubuntu, и может немного помочь: https://gist.github.com/cmaitchison/4083459

+0

не работал, но спасибо – crispychicken

0

я столкнулся с такой же вопрос и определили решение.

На вашем сервере удалите все версии Bundler. Вам будет предложено удалить исполняемый файл. Выберите «Да». Затем gem install bundler, который должен установить версию 1.3.2 или новее.

В вашем Gemfile убедитесь, что источником является https, а не http. source 'https://rubygems.org'

Cite: https://github.com/carlhuda/bundler/issues/2378#issuecomment-14714639

Смежные вопросы