Rails 4.2 capistrano 3部署

Rails 4.2 capistrano 3 deployment

我对 rails 部署完全陌生。谷歌搜索后,我仍然很难理解如何部署 rails 个应用程序。

所以,我的问题是:

  1. 设置 VPS 和所有 rails 依赖项后,我应该在哪里存储我的代码库? VPS 的根目录或某些特定位置,例如www/public/?

  2. 我应该上传整个 rails 应用程序文件夹还是只上传其中的一部分?我的 rails 应用程序中有回形针,回形针在 public/ 文件夹中创建了一个 system/ 目录,所以我应该上传 system/?

  3. 在 Capistrano 3 中,有一个 repo_url 字段,我知道他们支持 file://, https://, ssh://, or svn+ssh://,但是大多数关于 Capistrano 的文章都将 github 存储库放入其中.但是,我没有这样的 github 存储库。那我应该输入什么?

感谢您的关注。

具体问题的回答:

After setting up the VPS with all rails dependencies, where do I store my codebase? The root directory of the VPS or some specific locations e.g. www/ or public/?

它将部署到:deploy_to参数指向的文件夹。如果未指定,:deploy_to 默认为 /var/www/#{fetch(:application) 请参阅:https://github.com/capistrano/capistrano/blob/05f63f5f333bb261f2a4c4497174361c48143252/lib/capistrano/defaults.rb#L3

Should I upload the whole rails app folder or just part of it? I have paperclip in my rails app, and paperclip creates a system/ directory in the public/ folder, so should I upload system/?

Paperclip system文件夹特定于环境;每个环境(开发、生产...)都有自己的 system 文件夹,用于存储上传到该特定环境的文件。此文件夹不应是正在部署的代码的一部分。

处理此类文件夹的推荐方法是将它们保存在服务器上的共享文件夹中,并在当前版本的代码中创建符号链接,以便同一文件夹用于 storing/retrieving 附件。有关详细信息,请参阅 http://robmclarty.com/blog/how-to-deploy-a-rails-4-app-with-git-and-capistrano 中的 Section 3. Update custom links 部分。

正如那里提到的,这同样适用于 config/database.yml 文件,以及任何其他包含环境特定配置的文件。

In Capistrano 3, there is a repo_url field, I know they support file://, https://, ssh://, or svn+ssh://, but most of the articles about capistrano put github repositories into that. However, I do not have such a github repo. What should I input then?

取决于您要部署的代码的存储位置。如果它在本地文件夹中,请使用 file::// 格式指定文件所在的位置。

您可以 set up your own private git server,然后在 deploy.rb 中您可以输入类似

的内容

set :repo_url, 'ssh://user@server_ip/path/to/your_git_repo.git'

当您提交对 git 存储库的更改时,您不必将应用程序上传到服务器。 Capistrano 将在您部署时为您上传应用程序。

我的代码库放在哪里?这取决于您在 deploy.rb 中输入的内容,例如

set :deploy_to, '/path/to/my_codebase'

是否上传/system目录将取决于您是否希望版本控制中的回形针图像。如果没有,您可以将目录添加到 gitignore。这是关于如何在 ubuntu 14.04 passenger 和 NGINX 上部署的 tutorial。如果您不使用 Passenger 和 Nginx,您可以跳到如何配置 capistrano 并根据您的设置进行调整。

编辑

您需要在您的开发机器上安装 git 并在您的 VPS 上设置一个 git 服务器,如上面 link 所述,添加您的远程服务器使用

到您的本地计算机

git remote add origin <server>

其中 'server' 是 VPS 中 git 存储库的 url,例如

ssh://VPS_user@VPS_ip/path/to/your_git_repo.git

现在,当您提交更改并将更改推送到服务器时,capistrano 将在您的 git 服务器上部署最新版本。

Here is a link with a guide on how to get started with git