ruby-on-rails-避免对服务器配置进行硬编码

我正在开发Rails应用程序,并且打算将其开源.

this RailsCast之后,我将其部署到配置了nginx和unicorn的VPS服务器.

为了使Capistrano,Nginx和Unicorn正常工作,我必须在config /文件夹中添加一些服务器配置文件,例如deploy.rb,nginx.conf,unicorn.rb和unicorn_init.sh.

我正在使用git存储库,并且一切都在master分支下进行.换句话说,Capistrano从中获取了部署到服务器上的机会,这也是我要开源的分支.

但是我不希望我的服务器配置文件是公共可用的.

最好的解决方案是什么?

我应该分叉它并将一个存储库设置为官方公共存储库,并使用另一个存储库作为我自己的版本,并将该官方存储库设置为我的上游存储库吗?

还是将我的配置参数设置为环境变量,然后将配置文件保留在存储库中会更好?

最佳答案
此解决方案是我针对此问题找到的最佳解决方案(也是我个人使用的解决方案).

您应该将配置文件放在

/path/to/deployed_app/shared

然后在capistrano任务中,符号链接到这些文件:

namespace :deploy do
  task :symlink_shared do
    run "ln -s #{shared_path}/database.yml #{release_path}/config/"
  end
end

before "deploy:restart","deploy:symlink_shared"

相关文章

文章浏览阅读3.7k次,点赞2次,收藏5次。Nginx学习笔记一、N...
文章浏览阅读1.7w次,点赞14次,收藏61次。我们在使用容器的...
文章浏览阅读1.4k次。当用户在访问网站的过程中遇到404错误时...
文章浏览阅读2.7k次。docker 和 docker-compose 部署 nginx+...
文章浏览阅读1.3k次。5:再次启动nginx,可以正常启动,可以...
文章浏览阅读3.1w次,点赞105次,收藏182次。高性能:Nginx ...