Skip to content

DockerでPostgreSQLを構築

設定

docker-compose.yaml

yaml
services:
  postgresql:
    container_name: postgresql
    image: postgres:18.4
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=password
    ports:
      - 5432:5432
    volumes:
      - ./volumes/initdb.d:/docker-entrypoint-initdb.d

volumes/initdb.d/create_db.sql

sql
-- データベース作成
CREATE DATABASE eadb;
-- スキーマ作成
\c eadb
CREATE SCHEMA eadb;

-- テーブル作成
CREATE TABLE eadb.users (
    id INT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY
    , username VARCHAR(10)
    , age INT
);

-- ユーザ作成
CREATE USER eadbuser WITH PASSWORD 'eadbpass';
-- スキーマへの権限付与
GRANT USAGE ON SCHEMA eadb TO eadbuser;
-- テーブルへの権限付与
GRANT ALL ON ALL TABLES IN SCHEMA eadb TO eadbuser;