无法通过 capistrano 部署 rails 5 应用程序

Posted

技术标签:

【中文标题】无法通过 capistrano 部署 rails 5 应用程序【英文标题】:Cannot deploy rails 5 application through capistrano 【发布时间】:2019-04-05 08:24:57 【问题描述】:

上次我尝试使用 capistrano 部署应用程序时出现错误:

git exit status: 128 (SSHKit::Runner::ExecuteError)
git stdout: GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

从日志中,我看到 Sshkit 停止了这个命令:

DEBUG [ad9c3769] Command: ( export HOST="host.ru" GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/git-ssh-project-production-user.sh" ; /usr/bin/env git ls-remote git@gitlab.com:team/host/project.git HEAD )
 DEBUG [22255d19]   GitLab: The project you were looking for could not be found.
 DEBUG [22255d19]
 DEBUG [22255d19]   fatal: Could not read from remote repository.
 DEBUG [22255d19]
 DEBUG [22255d19]
 DEBUG [22255d19]   Please make sure you have the correct access rights
 DEBUG [22255d19]
 DEBUG [22255d19]   and the repository exists.

基本上,我的 capistrano 生产部署已经正常工作并且配置正确,但是此时 capistrano 使用的 sshkit 无法访问 gitlab.com 上的私有存储库。此外,使用 gitlab 部署密钥连接到服务器上配置的 repo。似乎在 gitlab api 中发生了一些变化。不知道。

但是,当我使用 ssh 登录服务器并尝试命令时:

export HOST="host.ru" GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/git-ssh-project-production-user.sh" ;
/usr/bin/env git ls-remote git@gitlab.com:team/host/project.git HEAD

它工作正常,正如预期的那样,输出:

5e46ac5b30d25499b375481f3c2377cb70f0346e    HEAD

也许有人已经遇到过这个问题并且知道如何解决,请帮助我。

【问题讨论】:

我遇到了类似的问题,发现远程仓库 URL 已更改,删除远程主机上的 repo 文件夹可以解决问题。看起来 Capistrano 明确依赖来自 repo 文件夹的 repo url 信息。 我记得,我通过完全删除服务器上 capistrano 生成的 /tmp 文件夹中的所有脚本来解决此问题。 看来,你绝对正确的绝地武士。我还删除了与项目相关的所有 repo 信息。 我最近和他们谈过这件事。好像他们已经修复了它,但它仍然不起作用。看到这个 Github 问题github.com/capistrano/capistrano/issues/2037 可以添加你的故事吗?他们拥有的信息越多,他们就越有可能修复它。 我已经在你提到的 github 问题帖子中附加了这个问题的链接。 【参考方案1】:

我通过完全删除 capistrano 生成的 /tmp 文件夹中的所有脚本和服务器上 repo 文件夹中的文件来解决此问题。 此外,正如 jedi 在 cmets 中所说,问题与 repo 信息有关。

【讨论】:

以上是关于无法通过 capistrano 部署 rails 5 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4,Capistrano 3.0.0,无法加载这样的文件——部署

如何在通过 Capistrano 部署 Rails 应用程序时输入 ssh 密钥的密码?

当通过 NVM 安装 NPM 时,Capistrano 部署失败并出现 react_on_rails

部署后缺少宝石(Ruby,Ruby on Rails,Capistrano)

Capistrano 3 部署要求输入 SSH 密码,但无法输入

Rails 4 + Capistrano + AWS Net::SSH::AuthenticationFailed: 部署