无法通过 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: 部署