🚢

docker compose でローカルに TimescaleDB と Meilisearch を用意する

2022/11/24に公開
  • docker-compose.yml を用意して
  • docker compose up で起動します
  • docker compose down で終了します
version: "3.9"
services:
  # up -> down で毎回データベースの初期化されて、テスト用の初期データが入ります
  timescaledb:
    image: timescale/timescaledb:2.8.1-pg14
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=default
    volumes:
      # timescaledb 側で 001 と 002 があるのでその後に実行するために 100 からスタート
      # https://github.com/timescale/timescaledb-docker/tree/main/docker-entrypoint-initdb.d
      - ./db/postgresql/postgresql.conf:/etc/postgresql/postgresql.conf
      # go-migrate で利用するテーブルファイル
      - ./db/schema/000001_initial.up.sql:/docker-entrypoint-initdb.d/100.sql
      # テスト用初期化データのファイル
      - ./db/fixtures.sql:/docker-entrypoint-initdb.d/200_fixtures.sql
  # meilisearch は up -> down しても初期化されません、そのまま残ります
  meilisearch:
    image: "getmeili/meilisearch:v0.29"
    ports:
      - "7700:7700"
    environment:
      - MEILI_MASTER_KEY=meili-master-key
    volumes:
      # データ部分をマウントすることで docker compose down しても API Key などが変わらなくしています
      # 初期化したい場合は /meili_data を削除して docker compose up してください
      - ./meili_data:/meili_data

開発中、大変便利に使っています。

Discussion