gpt4 book ai didi

ruby-on-rails - 添加/删除 ENV 变量时,Elastic Beanstalk 导致我的 Rails 6 应用程序预编译 Assets 中断

转载 作者:行者123 更新时间:2023-12-03 19:09:24 25 4
gpt4 key购买 nike

我可以使代码部署没问题,一切正常。问题是当我使用 Elastic Beanstalk Web 配置表单或 EB CLI 添加/删除/修改 ENV 变量时。
Elastic Beanstalk 报告说更改已成功完成,但是当我在浏览器中访问 Web 应用程序时,我标准 Rails 错误“抱歉,出了点问题”。
SSH 进入服务器查看日志文件显示与丢失 Assets 相关的错误。查看应用程序的“public”文件夹,不再有包含预编译 Assets 的“assets”文件夹,当我部署代码更改时通常会出现该文件夹。
我有以下可能相关的 ENV 设置:

RAILS_SERVE_STATIC_FILES: true
RAILS_SKIP_ASSET_COMPILATION: false
RACK_ENV: production
RAILS_ENV: production
我的生产环境配置:
Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present?
config.assets.compile = false
config.active_storage.service = :amazon
config.force_ssl = ENV.fetch("FORCE_SSL", false)
config.ssl_options = { redirect: { exclude: ->(request) { request.path =~ /health-check/ } } }
config.log_level = :debug
config.log_tags = [:request_id]
config.action_mailer.perform_caching = false
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new

if ENV["RAILS_LOG_TO_STDOUT"].present?
logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)
end

config.active_record.dump_schema_after_migration = false
end
为了解决这个问题,我只是重新部署了最后提交的代码,部署过程负责生成丢失的预编译 Assets 。
有没有人遇到过这个问题或对这里发生的事情有任何了解?

最佳答案

我遇到了同样的问题。
在 2020 年 8 月之前,我们无法 Hook 这些事件,但是在问题修复并为 AL2 发布平台后,它变得可以管理。
您可以使用 confighooks Hook beanstalk 配置更改.
创建 .platform/confighooks/predeploy/01_assets_precompile.sh喜欢...

#!/bin/bash
source /root/.bash_profile
source <(sed -E -n 's/[^#]+/export &/ p' /opt/elasticbeanstalk/deployment/env)
cd /var/app/staging; bundle exec rake assets:precompile
chown -R webapp:webapp /var/app/staging/
部署这些脚本,并更改​​ beanstalk 的 env vars。
也可以看看。
  • https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html
  • https://github.com/aws/elastic-beanstalk-roadmap/issues/59
  • 关于ruby-on-rails - 添加/删除 ENV 变量时,Elastic Beanstalk 导致我的 Rails 6 应用程序预编译 Assets 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62600427/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com