Capistrano 3 запускает каждую команду дважды (новая установка) - Проблема с конфигурацией

Я только что впервые завершил установку капистрано. Большая часть всего оставлена ​​с настройками по умолчанию, я настроил свой сервер, его аутентификацию и удаленную папку, а также доступ к моему репозиторию git.

Я использую capistrano для развертывания php-кода на моем сервере.

cap staging deploy и cap production deploy, но они запускают каждую команду дважды. Иногда возникают проблемы, когда эти задачи выполняются на сервере слишком быстро, возвращая коды ошибок, что останавливает процесс развертывания.

пример моего вывода при запуске cap staging deploy

DEBUG[47ecea59] Running /usr/bin/env if test ! -d ~/www/test_server/repo; then echo "Directory does not exist '~/www/test_server/repo'" 1>&2; false; fi on ftp.cluster013.ovh.net
DEBUG[47ecea59] Command: if test ! -d ~/www/test_server/repo; then echo "Directory does not exist '~/www/test_server/repo'" 1>&2; false; fi
DEBUG[c450e730] Running /usr/bin/env if test ! -d ~/www/test_server/repo; then echo "Directory does not exist '~/www/test_server/repo'" 1>&2; false; fi on ftp.cluster013.ovh.net
DEBUG[c450e730] Command: if test ! -d ~/www/test_server/repo; then echo "Directory does not exist '~/www/test_server/repo'" 1>&2; false; fi

Он делает то же самое с каждой отдельной задачей, кроме той, которую я определил сам (в моем deploy.rb я определил задачу: set_distant_server, которая перемещает файлы с информацией о сервере)

Я почти уверен, что что-то упустил во время начальной настройки.

Вот мой capfile с настройками по умолчанию:

# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'

# Includes tasks from other gems included in your Gemfile
# require 'capistrano/rvm'
# require 'capistrano/rbenv'
# require 'capistrano/chruby'
#require 'capistrano/bundler'
#require 'capistrano/rails/assets'
#require 'capistrano/rails/migrations'

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

Далее следует мой файл deploy.rb: # config действителен только для Capistrano 3.1 lock '3.2.1'

set :scm, :git
set :application, 'Application name'
# I use token authentification
set :repo_url, 'https://XXXXXXXXXXX:@XXXXXXX.git'

set :role, 'web'


# Default value for :log_level is :debug
set :log_level, :debug
set :tmp_dir, 'www/test_server/tmp'
set :keep_releases, 8


role :deploy_server, "XXXuser_name@XXXX_server"

task :set_distant do
    on roles(:deploy_server) do
        execute 'echo ------------******* STAGING *******------------'
        execute 'cp ~/www/test_server/current/access_distant.php ~/www/test_server/current/access.php'
        execute 'cp ~/www/test_server/current/session_distant.php     ~/www/test_server/current/session.php'
    end
end


after "deploy:finished", :set_distant

Вот мой staging.rb, намного короче:

 server 'XXX_server', user: 'XXXuser_name', roles: %w{web}, port: 22, password: 'XXXpassword'
 set :deploy_to, '~/www/test_server'
 set :branch, 'staging'

И мой production.rb очень похож:

 server 'XXX_server', user: 'XXXuser_name', roles: %w{web}, port: 22, password: 'XXXpassword'
 set :deploy_to, '~/www/beta/'

Я почти уверен, что пропустил шаг во всех предпосылках, чтобы он работал нормально. Я новичок в рубине, в драгоценных камнях и очень давно не использую оболочку.

Кто-нибудь понимает, почему эти команды запускаются дважды, и как я могу это исправить?

Заранее большое спасибо.

Дополнительная информация: Версия Ruby: ruby ​​-v ruby ​​2.1.2p95 (2014-05-08, редакция 45877) [x86_64-darwin13.0]

Версия Capistrano: cap -V Версия Capistrano: 3.2.1 (Версия граблей: 10.1.0)

Я не создавал и не настраивал Gemfile, я понимал, что он не нужен в Capistrano 3. В любом случае, я бы не знал, как это сделать.


person Thibault S.    schedule 23.07.2014    source источник


Ответы (1)


У меня была такая же проблема, и я понял, что мне не нужны оба

role :web

и

server '<server>'

Я избавился от role: web, и это избавилось от второго исполнения.

person Jay    schedule 25.07.2014
comment
Фактически, мне даже пришлось удалить роли:% w {web} в определении сервера. - person Thibault S.; 25.07.2014
comment
Рад, что смог помочь. :) - person Jay; 25.07.2014
comment
была такая же проблема при использовании server дважды (как в deploy.rb, так и в deploy / production.rb) - person Karl Wolf; 15.05.2019