Table of Content
[Docker] Rails+PostgreSQLでテスト用データベースをつくる
別の記事で紹介したRails API / React / PostgreSQLで環境構築が終わっていると変更箇所の理解がしやすいと思います。
[Docker]Rails API / React / PostgreSQL
目的
(参考)
環境
Windows10 for Pro
Docker for Windows
方法
1. 開発環境とは別にテスト用データベースのVolumeを作る
docker-compose.yml
にテスト用データベースのVolume test-db
を追加します。
# docker-compose.yml
version: '3'
services:
api:
build: ./api
ports:
- '3000:3000'
command: /bin/sh -c "rm -f /myapp/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- ./api:/myapp
depends_on:
- db
# テストデータ用のvolumeを追加
- test-db
db:
image: postgres
volumes:
- dbdata:/var/lib/postgresql/data
ports:
- '5432:5432'
# テストデータ用のvolumeを追加
test-db:
image: postgres
volumes:
- dbtest:/var/lib/postgresql/data
ports:
- '5433:5432'
front:
build: ./front
command: yarn start
ports:
- '8000:3000'
volumes:
- ./front:/myapp
depends_on:
- api
volumes:
dbdata:
# テストデータ用のvolumeを追加
dbtest:
2. Railsのテスト環境のデータベース設定を修正
# /config/database.yml
# test用データベースの接続先のhostをtest-dbに変更
test:
<<: *default
host: test-db
database: myapp_test
username: postgres
passowrd:
これで完了。