Rails:将“ master.key”移动到生产服务器

时间:2018-10-10 21:28:37

标签: ruby-on-rails ruby-on-rails-5

我正在尝试使用.generate-colors1(2); .generate-colors1(@n, @i:0)when(@i<@n){ .div@{i}{ background: red; } .generate-colors1(@n, (@i+1)); } .generate-colors2(6); .generate-colors2(@n, @i:3)when(@i<@n){ .div@{i}{ background: blue; } .generate-colors2(@n, (@i+1)); }

将Rails应用程序的更新版本部署到DigitalOcean上的Droplet中。

运行mina时出现错误mina deploy

我一直在期待这个错误,因为我还没有弄清楚如何向服务器添加详细信息。

许多文章建议有两种方法this

  

选项1:将Missing encryption key to decrypt file with. Ask your team for your master key and write it to /home/my_rails_project/app/tmp/build-153920174210305/config/master.key or put it in the ENV['RAILS_MASTER_KEY']文件放在服务器中。通常,您需要将此文件符号链接到服务器中的共享文件夹   文件系统。同样,请勿对您的config/master.key文件进行版本控制。

     

选项2:创建一个config/master.key变量。 Rails会检测到它并将其用作您的主密钥,例如在heroku中:RAILS_MASTER_KEY ENV

我已经尝试过使用FileZilla的选项1,但是,我无法访问该文件夹,在该文件夹中文章建议将文件存储在heroku config:set RAILS_MASTER_KEY= < your-master-key-here >-> /home/deploy/my-rails-project/shared/config/master.key中。我也无法通过FileZilla在本地计算机上看到Error: Directory /home/my-rails-project/app/shared/config: permission denied文件。同样,如果我在Digital Ocean上使用控制台,则会收到master.key错误

请您告诉我如何将permission denied移至生产服务器

预先感谢您的帮助

2 个答案:

答案 0 :(得分:1)

最后我按照@edudepetris的建议,研究了如何做选项2。这涉及将行RAILS_MASTER_KEY=<my_master.key>添加到我的.bashrc的顶部-通过登录服务器时输入nano .bashrc来完成此操作

答案 1 :(得分:0)

您可以使用capistrano-linked-files宝石(https://github.com/runar/capistrano-linked-files)。 该宝石提供Capistrano 3.1食谱来上传链接的文件和目录。链接的文件和目录位于远程服务器的shared目录中,并在部署之间保留。

将宝石添加到您的Gemfile

gem 'capistrano-linked-files'

然后将宝石添加到您的Capfile

require 'capistrano/linked_files'

现在将master.key添加到您的deploy.rb中:

set :linked_files, 'config/master.key'

现在您可以通过以下方式上传主密钥:

$ bundle exec cap <STAGE> linked_files:upload

所有这些详细信息来自https://github.com/runar/capistrano-linked-files的README.md。看看!

替代解决方案

capistrano/rails宝石(https://github.com/capistrano/rails)也有关于此主题的部分。