手順をすべて紹介。Windows環境にPostgreSQL×Dockerで環境構築する方法

こんにちは、堀部です。
 
前回の記事でLaravel×Docker環境を構築しましたが、今回はDBとしてPostgreSQLを入れていきたいと思います。
手順をすべて紹介。Windows環境にLaravel×Dockerで環境構築する方法
 
環境は以下の通りです。

ホスト側
Windows 10 Home
Apache
2系
PHP
7.4
PostgreSQL
12

必要ファイルの準備

前回、作成したdbフォルダに以下のようにファイルを作成します。

各種設定ファイルの作成

前回作成したdocker-compose.ymlに以下を追記します。
 
docker-compose.yml

  db:
    container_name: postgres
    build:
      context: ./docker/db
    ports:
      - '5432:5432'
    volumes:
      - ./docker/db/dumpdata:/docker-entrypoint-initdb.d
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
      PGDATA: /var/lib/postgresql/data/pgdata
    hostname: localhost
    user: postgres

そして新しく作成したDockerfileにPostgreSQLの設定を記載します。
 
Dockerfile
FROM postgres:12
# UTF-8有効化
RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8

docker-compose.ymlの8行目でdocker-entrypoint-initdb.dを指定するとDBの初期セットアップを行うことができますので、dumpdataフォルダにセットアップ用のSQLファイルを作成します。ファイル名は任意です。
 
create_database.sql
SET client_encoding = 'UTF8';
CREATE DATABASE local_db WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ja_JP.UTF-8' LC_CTYPE = 'ja_JP.UTF-8';
ALTER DATABASE local_db OWNER TO postgres;

dockerコンテナの起動

以下のコマンドでコンテナを起動します。

docker-compose up -d

正常に起動するとDocker Desktopで以下のように表示されます。

DBの確認

最後にDBの初期セットアップがされればDBのコンテナ内にSQLの内容でセットアップされます。

docker-compose exec postgres /bin/bash

まとめ

いかがでしたでしょうか。
 
Dockerを使うとデータベースの構築がものすごく簡単に行えますね。次回はフロントエンドの構築を行っていきたいと思います。
 
 
 
 
《関連記事》

Module not found: Error: Can’t resolve ‘sass-loader’ in ~
技術
2016.7.26(Tue)

噂のNode.jsをはじめてみよう! WindowsにNode.jsをインストールして環境構築

#JavaScript

Module not found: Error: Can’t resolve ‘sass-loader’ in ~
技術
2019.11.21(Thu)

Laravelの開発環境の構築! パッケージ管理ツールComposerのインストール方法

#PHP

Module not found: Error: Can’t resolve ‘sass-loader’ in ~
技術
2022.6.24(Fri)

手順をすべて紹介。Windows環境にLaravel×Dockerで環境構築する方法

#PHP

記事をシェア
MOST VIEWED ARTICLES