PostgreSQL環境をDockerで構築する方法についてまとめておきます。
なお、今回は環境として以下の環境を使用しています。
・Windows10 HOME
・WSL2 Ubuntu18.04
WSL2でのDocker環境の構築方法については以下をご覧ください。
PostgreSQLのDockerFileを作成する
基本的には、PostgreSQLの公式さんが提供している以下のリポジトリにあるDokcerFileとdocker-entrypoint.shをほぼコピペしております。
最終的なディレクトリツリーはこんな感じになります。
. ├── db │ └── Dockerfile │── .env └── docker-compose.yml
Dockerfileには以下の一文で十分です。
#Dockerfile
FROM postgres:latest
それから、以下のようなdocker-compose.ymlを作成します。
version: "3" services: db: build: context: ./db dockerfile: Dockerfile container_name: db-container ports: - "5432:5432" env_file: - ./.env volumes: - ./db:/docker-entrypoint-initdb.d
ユーザ名やパスワードについては、environmentにハードコーディングしている記事などが多いですが、あまりおすすめできません。
そのため、今回はdocker-compose.ymlと同じディレクトリに.envファイルを作成しています。
.envファイルには、適当に以下のようなデータを書いておきます。
POSTGRES_USER=postgres POSTGRES_PASSWORD=Password PGPASSWORD=Password POSTGRES_DB=db DATABASE_HOST=localhost
これで準備は完了です。
最後にdocker-compose up -d –buildコマンドでコンテナを起動しましょう!
作成したPostgreSQLにアクセス!
さて、せっかくDBを立てたので、アクセスできることを確認しておきましょう。
PostgreSQLにアクセスするためには、SQLクライアントであるpsqlをインストールする必要があります。
これは、postgresql-clientでインストールすることができます。
以下のコマンドでインストールからアクセス確認まで進めてしまいます。
#クライアントをインストールする sudo apt install postgresql-client -y #PostgreSQLにログイン! PGPASSWORD=Password psql -h db -U postgres
まとめ
今回はDjangoの開発環境をDockerで構築する中で学んだことをまとめてみました。
こんなに簡単に環境が出来上がるなんてDockerは便利ですねー。