Ошибка Capistrano - где определяется развертывание Cap? - PullRequest
0 голосов
/ 15 декабря 2010

Мой прогон cap deploy терпит неудачу, и я думаю, что это связано с проблемой форматирования.Вот некоторые результаты:

* executing "rm -rf /var/www/cap-deploy/socialmit/releases/20101215141011/log /var/www/cap-deploy/socialmit/releases/20101215141011/public/system /var/www/cap-deploy/socialmit/releases/20101215141011/tmp/pids &&\\\n      mkdir -p /var/www/cap-deploy/socialmit/releases/20101215141011/public &&\\\n      mkdir -p /var/www/cap-deploy/socialmit/releases/20101215141011/tmp &&\\\n      ln -s /var/www/cap-deploy/socialmit/shared/log /var/www/cap-deploy/socialmit/releases/20101215141011/log &&\\\n      ln -s /var/www/cap-deploy/socialmit/shared/system /var/www/cap-deploy/socialmit/releases/20101215141011/public/system &&\\\n      ln -s /var/www/cap-deploy/socialmit/shared/pids /var/www/cap-deploy/socialmit/releases/20101215141011/tmp/pids"

(извините за форматирование.)

&&\\\n вещи выглядят очень подозрительно, и, действительно, сброс их в мою консоль приводит к выводу `\ n:команда не найдена.

Где определено cap deploy?Похоже, что проблема связана с тем, что она определяется как список команд, которые не отформатированы должным образом, что приводит к постороннему переводу строки, который отбрасывает вещи.Но я не могу найти фактический код для cap deploy, чтобы это исправить.Это не похоже на приложение, так как его нет в моем Capfile или в любом из файлов, на которые ссылается Capfile.

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Проблема заключалась в том, что некоторые пользовательские задачи с именем after_symlink необходимо было переименовывать и вызывать после символической ссылки с использованием синтаксиса after("deploy:symlink", "deploy:new_name"):

проблема:

namespace :deploy do
  desc "Symlink the upload directories"
  task :after_symlink do
    #run "mkdir -p #{shared_path}/uploads"
    run "ln -s #{deploy_to}/shared/db #{deploy_to}/#{current_dir}/db/link"
  end
end

ошибка(на самом деле предупреждение):

Deprecation Warning] Naming tasks with before_ and after_ is deprecated, please see the new before() and after() methods. (Offending task name was after_update_code)
[Deprecation Warning] Naming tasks with before_ and after_ is deprecated, please see the new before() and after() methods. (Offending task name was after_symlink)

правильный способ сделать это:

namespace :deploy do
  desc "Symlink the upload directories"
  task :link_db do
    #run "mkdir -p #{shared_path}/uploads"
    run "ln -s #{deploy_to}/shared/db #{deploy_to}/#{current_dir}/db/link"
  end
end

after("deploy:symlink", "deploy:link_db")

Проблема с бизнесом \\\n была ошибочным с моей стороны.Видимо, это выполняется хорошо.

0 голосов
/ 15 декабря 2010

Задача развертывания определена в геме здесь .

Я бы сказал, что, скорее всего, проблема не в этом.Какую ошибку он вызывает при сбое развертывания?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...