taxin's notes

読書、勉強メモ etc.

N予備校(入門webアプリコース)のPostgreSQL環境をdocker-composeで用意した話

はじめに

N予備校PostgreSQL環境をdocker-composeで作ったので記事にしてみました。

私 (@taxin_tt) はSIerでインフラエンジニアとして働いていて、普段コードを書く機会があまりありません。
無料受講キャンペーンをやっていたこともあり、N予備校(入門webアプリコース)でアプリ開発の基本を学び直しています。

www.nnn.ed.nico

自分が受講している入門webアプリコースの中では、サンプルアプリのデータを保存するためにPostgreSQLの環境を用意する必要がありました。

本来はVagrantを使って環境を用意するのですが、めんどくさかったのでDockerの勉強にもなると思い、PostgreSQLの環境をdocker-composeで用意しました。

この記事の執筆時点(5月前半)でもコースは無料で受講でき、利用される方も多いと考え、GitHubで公開することにしました。

作成したもの

github.com

README.mdは英語で記載してありますが、日本語の簡単な説明も下部に記載しています。

使い方

基本的には、git cloneで上記のrepositoryをcloneして、docker-compose upPostgreSQLのコンテナを起動するだけです。
事前にDockerをinstallしておく必要があります。

docs.docker.com

また、docker exec -it <container_name> /bin/bashPostgreSQLのコンテナの中に入ってpsqlでDBの中身などを確認できます。
ユーザー側でDBの作成などの準備を行う必要はありません。

$ docker container ls -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                   PORTS                       NAMES
88d645d50d44        postgres:10-alpine     "docker-entrypoint.s…"   26 seconds ago      Up 25 seconds            0.0.0.0:5432->5432/tcp      postgres-container

$ docker exec -it 88d645d50d44 /bin/bash

bash-5.0# su - postgres
88d645d50d44:~$ 
88d645d50d44:~$ psql
psql (10.12)
Type "help" for help.

// 作成したいDB(secret_board)が事前に作成されていることがわかる
postgres=# \l
                                  List of databases
     Name     |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
--------------+----------+----------+------------+------------+-----------------------
 postgres     | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 secret_board | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 template0    | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
              |          |          |            |            | postgres=CTc/postgres
 template1    | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
              |          |          |            |            | postgres=CTc/postgres
 testdb       | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
(5 rows)


終わりに

簡単に作成した環境ですが、お役に立てば幸いです。
こんな感じの小さめのアウトプットもこまめにブログに載せていこうと思います。

PostgreSQLインスタンスのセットアップが簡単にできるようになったので、これを期にSQLの勉強も始めてみようと思います。 www.postgresql.org