Я развертываю приложение rails на Slicehost, используя Capistrano. Часть процесса развертывания включает в себя восстановление драгоценного камня и его установку.
Развертывание кода на сервере через git scm работает нормально, но по какой-то причине, когда я пытаюсь сделать ...
run 'gem build /my/app/folder/my.gemspec'
... в отдельной задаче в deploy.rb все это идет bboom. Я получаю странную ошибку, сообщая, что файлы в gemspec не являются файлами ...
ERROR: While executing gem ... (Gem::InvalidSpecificationException)
[ ... , "public/images/admin/navigation_shadow.png", "public/images/admin/new_layout.png", "public/images/admin/buttons_background.png", "public/images/admin/expand.png", "public/images/admin/status_spinner
** [out :: MY.IP.ADD.RESS ] .gif", "public/images/admin/draft_page.png", "public/images/admin/vertical_tan_gradient.png", "public/images/admin/status_top_right.png", "public/images/admin/snippet.png", "public/images/admin/spacer.gif", "public/images/admin/status_bottom_right.png", "public/images/admin/spinner.gif", "CONTRIBUTORS", "script", "script/server", "script/breakpointer", "script/generate", "script/dbconsole", "script/about", "script/spec", "script/runner", "script/process", "script/process/reaper", "script/process/inspector", "script/process/spinner", "script/process/spawner", "script/version", "script/plugin", "script/console", "script/autospec", "script/destroy", "script/cucumber", "script/spec_server", "script/performance", "script/performance/profiler", "s ** [out :: MY.IP.ADD.RESS ] cript/performance/request", "script/performance/benchmarker", "script/extension", "LICENSE", "CHANGELOG", ".gitignore", "bin", "my.gemspec", "config", "config/database.mysql.yml", "config/environments", "config/environments/test.rb", "config/environments/production.rb", "config/environments/development.rb", "config/database.yml" ] are not files
Что странно, потому что та же команда отлично работает, когда я ssh в поле и делаю это вручную, и когда я делаю ....
sh -c 'gem build /my/app/folder/my.gemspec'
, как capistrano оборачивает удаленные вызовы командной строки, и это прекрасно работает, когда я делаю это вручную.
Даже пытался обернуть вызов Kernel.system () в другой файл ruby и вызвать его из deploy.rb, но все равно получил ту же проблему. Сумасшедший.
Интересно, если что-то делать с
** [out :: MY.IP.A.DRES]
строка, добавляемая в вывод через явно случайные интервалы.