[Docker] Rails+PostgreSQLでテスト用データベースをつくる

[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:

これで完了。

コメントを残す

Scroll to top