##したいこと
本番環境にcapistranoを使ってデプロイしていて、追加で新しくEC2を立ててproductionと全く同じstaging環境を構築したい
##試したこと
・credentialsを環境ごとに(development,production)分けているので、staging.keyを作成→secret_base_key以外はproduction.keyと同じ
・environments/staging.rbを作成→production.rbと全く同じ
・capistranoのデプロイをproductionとstagingを分けるためにdeploy/staging.rbを作成
##解決したいこと
bundle exec cap staging deploy実行後にprecompileでエラーが出てきてデプロイできない
log/capistrano.log
config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly: * development - set it to false * test - set it to false (unless you use a tool that preloads your test environment) * production - set it to true rake aborted! ActiveRecord::AdapterNotSpecified: The `staging` database is not configured for the `staging` environment. Available databases configurations are: default development test production
deploy.rb
lock "~> 3.15.0" set :application, "xxxx" set :repo_url, "git@github.com:xxxx/xxxx.git" set :rbenv_ruby, File.read(".ruby-version").strip set :nginx_config_name, "#{fetch(:application)}.conf" set :nginx_sites_enabled_path, "/etc/nginx/conf.d" set :branch, ENV["BRANCH"] || "master" set :stages, %(production, staging) set :default_stage, "staging" append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "node_modules"
staging.rb
server "xxxxxx", user: "xxxx", roles: %w[app db web] set :rails_env, "staging" set :stage, :staging append :linked_files, "config/credentials/staging.key" set :ssh_options, { keys: %w[~/.ssh/xxxx.pem], forward_agent: true, auth_methods: %w[publickey], }
production.rb
server "xxxxxx", user: "xxxx", roles: %w[app db web] set :rails_env, "production" set :stage, :production append :linked_files, "config/credentials/production.key" set :ssh_options, { keys: %w[~/.ssh/xxxx.pem], forward_agent: true, auth_methods: %w[publickey], }
ログを見たところ、なぜかstaging環境ができていない?と思うのですが、詰まっています。
ご教授よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。