У меня есть следующие настройки в моем deploy.rbSSH экспедитор с Capistrano-не работает при развертывании Rails приложения
set :application, 'sample_app'
set :repo_url, '[email protected]:/home/user/railsapps/sample_app'
set :deploy_to, '/var/www/sample_app'
set :user, "user"
set :ssh_options, { :forward_agent => true }
и мой развернуть/production.rb файл:
set :stage, :production
server '123.45.67.200', user: 'user', roles: %w{app db web}
Я получаю следующее сообщение об ошибке при запуске крышки производства развернуть: проверить
DEBUG [] ssh: connect to host 123.45.67.100 port 22: Connection timed out
DEBUG [] fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: git exit status: 128
git stdout: Nothing written
git stderr: ssh: connect to host 123.45.67.200 port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
в одной из линий, я вижу, что он пытается получить доступ к хранилищу, как [email protected], который является пользователем развертывания сервера производства:
INFO [] Running /usr/bin/env git ls-remote --heads [email protected]:/home/user/railsapps/sample_app as [email protected]
Не должно быть о том, что это соединение в качестве локального пользователя с локальными ключами SSH? Запускается ли Capistrano на производственный сервер, а затем вытаскивает код из репозитория? Если да, то есть ли способ заставить его вытолкнуть код из репозитория на производственный сервер?
Capistrano работает, вытягивая обновленный код. Он войдет на сервер производства, а затем оттуда возьмет git. Если вы переадресовываете ключи, ваш локальный ключ будет доступен, но вы можете клонировать репо в качестве пользователя развертывания –