docker compose のコマンドで、ダンプデータをいれる方法
docker composeで、postgresのコンテナを立ち上げて初期データやダンプデータを入れる方法についてメモ
docker のpostgresのコンテナを立ち上げる。 最低限の設定
Dockerfileは別に管理して、立ち上げるようにする。
version: "3.7" services: db: build: context: ./docker dockerfile: Dockerfile.database ports: - 5432:5432 environment: POSTGRES_USER: [postgresユーザ] POSTGRES_PASSWORD: [postgresパスワード] TZ: "Asia/Tokyo" volumes: - db:/var/lib/postgresql/data - ./docker/db/:/docker-entrypoint-initdb.d
[]の中は、適宜修正
- ./docker/db/:/docker-entrypoint-initdb.d
ホスト側の./docker/db/フォルダに初回実行SQLを入れておくとcreatedbやらdocker compose build
した段階でやってくれる。
実行される順番は、ファイル名の昇順になっているので、01や1などをファイル名の先頭につけて、保存しておく。
必要なけれがコメントあうと。
rails などの migrationファイルが管理されている場合は、不要だけど、pgplsqlを使っている場合など、migrationだけでは対応できない処理がある場合は、
初期データを準備するのに便利。
FROM postgres:10.5 RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8 ENV LANG ja_JP.utf8
DBの最低限の情報だけ書いておく。基本、バージョンの10.5の部分だけ環境に合わせて変更。
上記の準備ができたら、コンテナの起動
$ docker-compose build $ docker-compose up -d
docker-composeで、コンテンナの名前をdbにしたので、以下のコマンドでpostgresのDBへダンプデータを流し込む
$ docker-compose exec -T db psql -U [postgersユーザ] [db名]< dump.sql
わかればこれだけ?なんだけど、なれるまではdockerは難しい。
- 作者: 山田明憲
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化
- 作者: WINGSプロジェクト阿佐志保
- 出版社/メーカー: 翔泳社
- 発売日: 2018/04/11
- メディア: Kindle版
- この商品を含むブログを見る