質問内容
自作のRailsアプリをAWSのEC2にCapistranoを使ってデプロイすると以下のエラーが発生します。
console
1~@yk golfour_aws % bundle exec cap production deploy 2~(途中までは実行されます) 300:14 deploy:assets:precompile 4 01 $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile 5 01 rake aborted! 6 01 ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `rails credentials:edit`
開発環境
Ruby 2.5.1
Rails 5.2.4.3
MySQL
デプロイ環境:
AWS(EC2)
試したこと
credentials.yml.encとmaster.keyを、サーバー側(EC2)に設置しました。
アプリ直下のconfigディレクトリに上記のファイルがあったので、念のためshared/config配下にも設置しましたが、同様のエラーが発生しました。
一週間ほどこのエラーで詰まっていおり、非常に困っています...
少しでもご助言いただければ幸いです。
どうぞよろしくお願いいたします。
ソースコード
(local)config/deproy.rb
# capistranoのバージョン固定 lock '3.14.1' # デプロイするアプリケーション名 set :application, 'golfour' # cloneするgitのレポジトリ set :repo_url, 'git@github.com:matao0214/golfour_aws.git' # deployするブランチ。デフォルトはmasterなのでなくても可。 set :branch, 'master' # deploy先のディレクトリ。 set :deploy_to, '/var/www/rails/golfour' # シンボリックリンクをはるファイル。 set :linked_files, fetch(:linked_files, []).push('config/settings.yml') # シンボリックリンクをはるフォルダ。 set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system') # 保持するバージョンの個数。過去5つまで履歴を保存。 set :keep_releases, 5 # rubyのバージョン set :rbenv_ruby, '2.5.1' # 出力するログのレベル。 set :log_level, :debug namespace :deploy do desc 'Restart application' task :restart do invoke 'unicorn:restart' end desc 'Create database' task :db_create do on roles(:db) do |_host| with rails_env: fetch(:rails_env) do within current_path do execute :bundle, :exec, :rake, 'db:create' end end end end desc 'Run seed' task :seed do on roles(:app) do with rails_env: fetch(:rails_env) do within current_path do execute :bundle, :exec, :rake, 'db:seed' end end end end after :publishing, :restart after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do end end end
(local)config/deproy/production.rb
# EC2サーバーのIP、EC2サーバーにログインするユーザー名、サーバーのロールを記述 server '54.150.171.208', user: 'yuki', roles: %w[app db web] # デプロイするサーバーにsshログインする鍵の情報を記述 set :ssh_options, keys: '~/.ssh/go_key_rsa'
(サーバー:EC2)/var/www/rails/appname/config/credential.yml.encと/var/www/rails/appname/shared/config/credential.yml.encに同じファイルを設置。
EDITOR=vim rails credentials:edit を実行して以下のファイルが表示。
secret_key_base: xxxx aws: access_key_id: 123 secret_access_key: 345
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/31 09:45