使用 Mina 从 github 部署到 Digital Ocean - 挂在“获取提交”上

goo*_*oon 3 ruby ssh digital-ocean mina-deploy

我已添加服务器的 SSH 密钥以在 github 中部署密钥。

运行后mina deploy我得到以下信息:

-----> Quiet sidekiq (stop accepting new work)
       /var/www/myproject/tmp/build-157262358827785
-----> Fetching new git commits
Run Code Online (Sandbox Code Playgroud)

它留在这里,什么也没有发生

当我按 ctrl + c 时,它会说

-----> Mina: SIGINT received.
       Enter passphrase for key '/root/.ssh/id_rsa':
       Elapsed time: 1931.59 seconds
Run Code Online (Sandbox Code Playgroud)

在我的deploy.rb文件中set :term_mode, nil,人们说你需要它,因为当输入 SSH 密码后挂起时,但我从来没有准备好,直到我在控制台中执行 ctrl + c 。

没有办法输入密码

编辑:

-v为详细输出做了一个标志:

 -----> Quiet sidekiq (stop accepting new work)
       $ cd /var/www/myproject/current
       $ if [ -f /var/www/myproject/shared/pids/sidekiq.pid ] && kill -0 `cat /var/www/myproject/shared/pids/sidekiq.pid` > /dev/null 2>&1; then
                     RAILS_ENV="production" bundle exec sidekiqctl quiet /var/www/myproject/shared/pids/sidekiq.pid
                   else
                     echo 'Skip quiet command (no pid file found)'
                   fi
       /var/www/myproject/tmp/build-157288289226943
-----> Fetching new git commits
       $ (cd "/var/www/myproject/scm" && git fetch "git@github.com:[company]/myproject.git" "dev:dev" --force)
Run Code Online (Sandbox Code Playgroud)

模拟显示-s该部分正在运行

if [ ! -d "/var/www/myproject/scm/objects" ]; then
    echo "-----> Cloning the Git repository"
    git clone "git@github.com:[company]/myproject.git" "/var/www/myproject/scm" --bare
  else
    echo "-----> Fetching new git commits"
    (cd "/var/www/myproject/scm" && git fetch "git@github.com:[company]/myproject.git" "dev:dev" --force)
  fi &&
Run Code Online (Sandbox Code Playgroud)

goo*_*oon 6

好的,我发现了这个已关闭的 github 问题:https ://github.com/mina-deploy/mina/issues/449

我发现我只需要添加set :execution_mode, :system到我的部署文件中。

github问题上的答案说它在常见问题解答中,但是,他们的措辞如下:

- Mina hangs after i type my password in
Mina assumes that you have set up the communication with your server through the public/private keys, not password. If you want to use the password you will have to change the execution mode:
Run Code Online (Sandbox Code Playgroud)

我什至从未被提示输入密码,所以我不知道这适用于我。我也使用 ssh 公钥/私钥(显然),所以他们的措辞方式很奇怪。也许是因为我对此不太有经验。

无论如何,如果有人遇到同样的问题 - 这就是答案。