Dockerで環境構築を行っており、今回本番環境をAWSのRDSにつないで構築しようとしていました。しかし、credential.yml.enc
ファイルの編集ができず、躓いてしまったので共有します。遭遇したエラーを順番に記載していきます。
##docker-compose upできないエラー
まず、credentail.yml.enc
ファイルの編集する前段階でdocker-composeすら立ち上がらない状態になりました。database.yml
のproductionを下記のようにまず直すことでdocker-composeが立ち上げられる状態になりました。
before
production:
<<: *default
host: <%= Rails.application.credentials.rds[:host] %>
database: <%= Rails.application.credentials.rds[:database] %>
username: <%= Rails.application.credentials.rds[:username] %>
password: <%= Rails.application.credentials.rds[:password] %>
after
production:
<<: *default
database: sanpomiti_app_production
username: sanpomiti_app
password: <%= ENV['SANPOMITI_APP_DATABASE_PASSWORD'] %>
##credential.yml.encが編集できないエラー
dockerコンテナの中でvimを使い、credential.yml.enc
を編集しようとしますが、vimが立ち上がらず、New credentials encrypted and saved.
のメッセージが出ました。
mac-no-MacBookPro:Sanpomiti_app mac$ docker-compose exec web bash
root@XXXXXXXXX:/sanpomiti_app# EDITOR="vim" bin/rails credentials:edit
New credentials encrypted and saved.
試しにbashにvimと打ち込むとvim自体立ち上がらず、vim自体がinstallされていないことが分かりました。installコマンドを実行し、無事解決しました。
apt update
apt install vim -y
あとはEDITOR="vim" bin/rails credentials:edit
と入力した後、credential.yml.enc
を編集し、database.yml
を元に戻しました。
参考
https://qiita.com/YumaInaura/items/3432cc3f8a8553e05a6e
https://teratail.com/questions/210166