覚書: Rails: Docker: 開発環境で PostgreSQL を使う

環境
ruby 3.2.2
rails 7.1.3.2
docker 25.0.3
postgres:15.6-bookworm

参照
https://hub.docker.com/_/postgres
Docker LibraryのPostgreSQLで日本語がうまくソートされない

手順
コンテナ名 env_dev-pg_15
アカウント postgres/pg_secret

ボリューム ./data:/var/lib/postgresql/data
ポート 5432

PostgreSQL のコンテナを起動して接続する。
POSTGRES_INITDB_ARGS に "--encoding=UTF-8 --locale=C" を設定する。
ボリューム カレントの data を /var/lib/postgresql/data にマウントする。

docker run --name env_dev-pg_15 -e POSTGRES_INITDB_ARGS="--encoding=UTF-8 --locale=C" -e POSTGRES_PASSWORD=pg_secret -p 5432:5432 -d postgres:15.6-bookworm

docker run -it --rm --network host postgres:15.6-bookworm psql -h localhost -U postgres
\conninfo
select name, setting, context from pg_settings where name like 'lc%';
\q

config/database.yml の default に username password host を追加する。

default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # https://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: postgres
  password: pg_secret
  host: localhost

development と test のデータベースを作成する。

rails db:create

以上です。

この記事が気に入ったらサポートをしてみませんか?