🚢
docker compose でローカルに TimescaleDB と Meilisearch を用意する
-
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