使用Capistrano部署Rails应用时遇MessageEncryptor错误及后续问题
Rails 7 + Capistrano 部署AWS EC2 问题求助
我正在用Capistrano将Rails 7.2.2.1(Ruby 3.3.5)应用部署到AWS EC2实例,执行本地命令bundle exec cap production deploy始终失败,过程中遇到两类错误,具体情况如下:
一、凭据加密相关错误
- 已完成凭据文件配置:将production.key内容复制到EC2实例对应路径,同步production.yml.enc并推送到仓库,先后尝试使用master key和production key(修改linked_files指向)均无效;
- 多次删除重建密钥和加密凭据文件:
初始配置:
因提示production环境未找到secret_key_base,调整为:secret_key_base: ******** production: db_password: ********production: secret_key_base: ****** password: ****** - 按建议在EC2实例设置
RAILS_MASTER_KEY环境变量后,仍报错:ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
二、更新后的Sprockets错误
推送代码后忘记在远程服务器拉取,拉取后出现新错误:Sprockets::ArgumentError: link_tree argument must be a directory (Sprockets::ArgumentError)
寻求上述两类错误的解决方案,或更易懂的Rails 7部署到AWS EC2的实操教程。
内容的提问来源于stack exchange,提问作者Michael Egharevba
相关产品推荐
相关产品推荐

