オンライン読書会 Next のテーマとして扱う「PostgreSQLのドキュメントを読む」のためのリポジトリです。
読むのに必要となる PostgreSQL 環境をすぐに用意できるように Dockerfile を置いています。
PostgreSQL 10 のドキュメントを読む
https://www.postgresql.jp/document/10/html/
- PostgreSQL 10系
 
ドキュメントは 10.0 とあるが 10.x ならいいと思う
$ psql --version
psql (PostgreSQL) 10.3$ brew install postgresqlその後画面の指示に従ってサービスを登録すると PostgreSQL デーモンが自動起動するようになる
シンプルなローカルインストールで悩むことは少ないが、微妙な点として、
- 業務などのプロジェクトで使うバージョンが決まっている場合やりにくい
 - PostgreSQL がバージョンアップした場合 
brew upgradeでバージョンアップされちゃう 
ことはあります。
まず Docker for Mac などをインストールして Docker の実行環境を用意する。
チュートリアルで、C のソースコードのコンパイルなどが必要になるため、yochiyochirb/postgresql-documentation-reading という、そういった前準備をした Docker イメージを用意しています。
PostgreSQL の Docker コンテナを起動するのは↓のコマンド1発です。
$ docker run --rm --name odknext1_postgres -p 15432:5432 \
    -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres \
    -v odknext1_postgres-data:/var/lib/postgresql/data \
    yochiyochirb/postgresql-documentation-readingこれで、
- コンテナ名: 
odknext1_postgres - ホスト側ポート: 15432
 - PostgreSQL バージョン: 10.3
 - PostgreSQL ユーザー名: 
postgres postgresユーザーパスワード:postgres- 永続化ボリューム: 
odknext1_postgres-data 
でコンテナが起動します。
※ odknext1_postgres-data はホストのローカルに永続化されるのでコンテナを落としてもデータは残る (docker volume ls で確認可能)
ホスト側のローカルに psql が入って入れば、
$ psql -h localhost -p 15432 -U postgres postgresでコンテナで起動している PostgreSQL に接続できる。
他のクライアントでも localhost:15432 に接続すれば OK。
上記 PostgreSQL コンテナを起動した状態で、
$ docker exec -it odknext1_postgres psql -U postgres postgresとする、起動中のコンテナで psql コマンドを実行できる。
もしくは、
$ docker exec -it odknext1_postgres bashとすると bash を起動しシェル操作を行うことができる。
これだと createdb などのシェルから実行するコマンドも実行できるし、そこで psql -U postgres postgres とすれば psql も実行できる。