データベース(今回はpostgresql)を開発用に準備するとき、ローカルにインストールして作ってしまうと、他のPCで作業するときにDBのデータを共有できなかったり、一から環境を整えたりと、めんどくさい作業があります。そこでdockerを使ってコマンド一発で開発環境を整えましょうみたいな記事です。おそらくN番煎じの在り来たりな記事ですが、お付き合いください。
docker-compose.ymlファイルの準備
ここではDockerfileでももちろんいいのですが、データベースですから恐らく今後アプリ側との拡張があるだろうってことでdocker-compose.ymlに設定を書いていきます。
docker-compose.yml version: "3.1" services: db: image: postgres ports: - "5432:5432" restart: always environment: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres POSTGRES_DB: test
最低限ですが、開発用なのでこれぐらいで十分かと思います。
postgreのバージョンは下記のURLから確認してください。
https://hub.docker.com/_/postgres/
Environment Variables
こちらはオプショナルですが、config fileに書いておくと、確認しやすくなります。
POSTGRES_INITDB_ARGS(postgres initdbに引数を送ることができる)
POSTGRES_INITDB_WALDIR(Postgresのトランザクションログの別の場所を定義することができる。)
があります。
サービスを動かす
設定ファイルが出来上がったので、サービスを動かしていきます。下記のコマンドを打ってください。
docker-compose up -d
docker psでコンテナが動いてることを確認してください。
docker ps
コンテナの中に入る
さきほどpsコマンドで確認したcontainer idを指定して、コンテナの中に入ります。
docker exec -it CONTAINR_ID /bin/bash
コンテナの中でpsqlのデータベースを触ることができます。
# psql --version psql (PostgreSQL) xx.x