Ruby on rails Rails 4.2 capistrano 3部署
我对rails部署完全陌生。在谷歌搜索之后,我仍然很难理解如何部署rails应用程序 因此,我的问题是:Ruby on rails Rails 4.2 capistrano 3部署,ruby-on-rails,git,deployment,capistrano,vps,Ruby On Rails,Git,Deployment,Capistrano,Vps,我对rails部署完全陌生。在谷歌搜索之后,我仍然很难理解如何部署rails应用程序 因此,我的问题是: 在使用所有rails依赖项设置VPS之后,我将代码库存储在哪里?VPS的根目录或某些特定位置,例如www/或public/ 我应该上传整个rails应用程序文件夹还是只是其中的一部分?我的rails应用程序中有回形针,回形针在public/文件夹中创建了一个system/目录,所以我应该上传system/ 在Capistrano 3中,有一个repo_url字段,我知道它们支持文件://、h
www/
或public/
public/
文件夹中创建了一个system/
目录,所以我应该上传system/
文件://、https://、ssh://,或svn+ssh://
,但大多数关于Capistrano的文章都将github存储库放在了其中。但是,我没有这样的github回购协议。那么我应该输入什么感谢您的关注。对提出的具体问题的回答: 在使用所有rails依赖项设置VPS之后,我将存储在哪里 我的代码库?VPS的根目录或某些特定位置 e、 g.www/或public/ 它将被部署到
:deploy_to
参数所指向的文件夹中。如果未指定,:deploy_to
默认为/var/www/#{fetch(:application)
请参阅:
我应该上传整个rails应用程序文件夹还是只是其中的一部分
我的rails应用程序中的回形针,回形针创建一个系统/目录
在public/文件夹中,我是否应该上载system/
回形针system
文件夹是特定于环境的;每个环境(开发、生产等)都有自己的system
文件夹,用于存储在特定环境中上载的文件。此文件夹不应是部署的代码的一部分
处理此类文件夹的建议方法是将其保存在服务器上的共享文件夹中,并在当前版本的代码中创建符号链接,以便使用同一文件夹存储/检索附件。有关详细信息,请参阅第3节。更新中的自定义链接
如上所述,这同样适用于config/database.yml
文件以及包含特定于环境的配置的任何其他文件
在Capistrano3中,有一个repo_url字段,我知道它们支持
文件://、https://、ssh://,或svn+ssh://,但大多数文章
关于capistrano,我将github存储库放入其中。但是,我没有
有这样一个github回购。那么我应该输入什么
取决于要部署的代码的存储位置。如果它位于本地文件夹中,请使用文件:://
格式指定文件的位置。您可以,然后在deploy.rb中可以放置
set:repo\u url,'ssh://user@服务器ip/path/to/your\u git\u repo.git'
当您将更改提交到git repo时,您不必将应用程序上载到服务器。Capistrano将在您部署时为您上载应用程序
我应该将代码库放在哪里?这取决于您在部署.rb中放置的内容,例如
set:deploy\u to,'/path/to/my\u codebase'
是否上载/system
目录将取决于您是否希望版本控制上的回形针图像。如果不希望,您可以将目录添加到gitignore
。下面是一个关于如何在ubuntu 14.04 passenger和NGINX上部署的示例。如果您不使用passenger和NGINX,可以跳到如何配置capistrano和NGINX根据您的设置进行调整
编辑
您需要在开发机器上安装git,并在VPS上设置git服务器,如上面链接中所述,使用将远程服务器添加到本地机器
git远程添加源站
其中“server”是指向VPS中git回购的url,例如
ssh://VPS_user@VPS_ip/path/to/your_git_repo.git
现在,当您提交更改并将其推送到服务器时,capistrano将在您的git服务器上部署最新版本
关于#3,如果您不使用github,您会使用什么来管理源代码?这是否意味着我必须拥有远程git repo才能通过capistrano进行部署?我对git很敏感,因为我很少使用git…远程git repo可以位于您部署应用程序的同一VPS中。唯一的条件是部署应用程序的用户必须ld对repo所在的目录具有读写权限。在本例中,您将其放入deploy.rb
set:repo\u url,'ssh://your_vps_username@您的\u vps\u ip/path/to/git\u repo.git'
。我将很快编辑答案,并提供一个关于如何使用git的简单入门链接。感谢您的回复。我需要先用git推送我的答案吗本地代码库到远程git repo,然后运行cap deploy命令?或者我只需要cap deploy,Capistrano将推送我的最新代码库,从而部署应用程序?如果我使用repo\u url,'ssh://your_vps_username@您的ip/path/to/git\u repo.git'
。这是否意味着任何可以猜到我的git路径的人都有权克隆我的代码库?这里有安全措施吗??