maixhashi / plotforge

0 stars 0 forks source link

Build_2024.09.24.06.28_production環境 EC2インスタンス上でのRails.application.credentialsの設定 #239

Open maixhashi opened 1 month ago

maixhashi commented 1 month ago

実現したいこと

EC2インスタンス上でのRails.application.credentialsの設定 https://qiita.com/at-946/items/1e8acea19cc0b9f31b98

変更する事項

EC2インスタンスでRails.application.credentialsにより本番環境のデータベースの環境変数を設定する方法

maixhashi commented 1 month ago

database.ymlの設定変更

開発環境におけるdatabase.yml → 本番環境におけるdatabase.ymlの内容に書き換えてpush

開発環境におけるdatabase.yml

production:
  <<: *default
  database: <%= ENV.fetch("DB_DATABASE") %>
  host: <%= ENV.fetch("DB_HOST") %>
  username: <%= ENV.fetch("DB_USERNAME") %>
  password: <%= ENV.fetch("DB_PASSWORD") %>

開発環境におけるdatabase.ymlの内容を削除して、本番環境におけるdatabase.ymlの内容に書き換える。

production:
  <<: *default
  database: <%= Rails.application.credentials.rds[:database] %>
  host: <%= Rails.application.credentials.rds[:host] %>
  username: <%= Rails.application.credentials.rds[:username] %>
  password: <%= Rails.application.credentials.rds[:password] %>

EC2にアクセス

[Elastic IP]は EC2インスタンスのElastic IP

sudo ssh -i ~/.ssh/plotforge_key.pem ec2-user@[Elastic IP]

本番環境内容を既存内容に対して変更する場合

ルートディレクトリに移動

cd /

既存内容を削除

sudo rm -rf /plotforge

⇧ pull で良い? https://qiita.com/tasp/items/10cdcfc40295f8c5d256

sudo git clone https://github.com/maixhashi/plotforge

lsと打って、ディレクトリがあるか確認する。

ls

cd /plotforge

コンテナを作成

docker-compose build

ネットワークを作成

docker network create plotforge-network

プリコンパイルを実施

docker-compose run app rails assets:precompile RAILS_ENV=production

コンテナを起動

docker-compose up

Dockerコンテナ上でvimをインストール

Dockerコンテナに入る

docker-compose run app bash

vimをインストール

apt-get update
apt-get install vim -y

credentialを編集

EDITOR="vim" rails credentials:edit

環境変数の設定

tmdb:
  api_key: TMDBのAPIキー

rds:
  host: RDSのエンドポイント
  database: RDSの「データベースの名前」
  username: RDSの「マスターユーザの名前」
  password: RDSの「マスターパスワード」

credentials / master.key は一旦削除してから始める

うまくいかないときはcredential.yml.enc と master.key を削除する https://qiita.com/curry__30/items/434a51226020576cfecb

データベースの設定

docker-compose exec app rails db:create db:migrate RAILS_ENV=production
docker-compose exec app rails db:seed RAILS_ENV=production
maixhashi commented 1 month ago

本番環境でエラーが起きた場合

appコンテナに入る

docker-compose exec app bash

ログを確認

tail -n 100 log/puma.stdout.log
maixhashi commented 1 week ago

Dockerの容量確保

docker system prune -af --volumes