NAKKA-Kの技術ブログ

技術に関する知見や考え方などを投稿します。

env設定忘れでDBが動かず、Dockerを初期状態から立ち上げた

Dockerでpostgresを起動。 同じくDockerでRailsを起動しdocker-composeで接続。

ActiveRecord::NoDatabaseError

FATAL: role "myuser" does not exist

docker-compose up -dした時に環境変数をセットするのを忘れていました。 postgresにボリュームを設定していたので、環境変数をセットしていない間違った状態のまま作成されていました。

$ docker-compose down

これではボリュームなどの永続設定のデータは削除されず上手く初期状態から立ち上げることはできません。

完全に再度作成し直す必要がありました。 以下のコマンドで一度全て削除することができます。

$ docker-compose down -v --rmi all

これで永続化されたボリュームもう一度初期から立ち上げることができます。

$ docker-compose up -d
$ docker-compose run server rake db:create

これで解決しました。