gpt4 book ai didi

ruby-on-rails - 在服务器上没有互联网访问权限的 Capistrano 部署

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:47 26 4
gpt4 key购买 nike

如何使用 Capistrano 将 Rails 应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?

我已经设法完成部署的一半,并意识到 Capistrano 没有在我的本地机器上下载 git repo,但它首先连接到远程服务器 并尝试在那里下载 Git 存储库。

我希望有一个类似 Java ee 的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建 .ear 文件并将其部署到您想要的任何服务器上一样。显然在 RoR 中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个 gem 存储库,在那里克隆最新的分支等等。

有什么方法可以将准备运行的包发送到远程服务器吗?

最佳答案

更新于 2014 年 8 月 29 日

可以将 capistrano 指向本地存储库。我已经做了。

你需要一个 bare_repo 来 pull ,所以首先在远程机器上创建一个裸仓库:

mkdir -p ~/projects/my_project.git
cd ~/projects/my_project.git
git init --bare

然后您需要以某种方式将您的代码推送到该存储库。您可以通过 ssh 隧道推送,或者您可以压缩您的工作仓库,通过 scp 将其复制到远程机器,解压缩,然后设置该工作目录以推送到您的新裸仓库。

然后回到您的工作站并编辑您的 deploy.rb 文件以指向您在远程计算机上创建的本地存储库。

set :repo_url, 'file:///path/to/bare_repo.git'

然后 capistrano 应该能够从本地 git 存储库中 pull 。

可选:如果 capistrano 仍在寻找在线 repo,则浏览到远程服务器上的部署目录,并清除 repo 文件夹:

cd /directory_where_i_am_deploying_to/
rm -rf repo

关于ruby-on-rails - 在服务器上没有互联网访问权限的 Capistrano 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com