PostgreSQL을 Docker container로 생성 시 자동으로 table 생성되게 하는 법

sshinohs·2023년 1월 13일
1

docker-compose.yaml 파일이 포함된 폴더에 컨테이너 생성 시 실행될 sql문이 담긴 파일을 포함시킨다.
ex) init/init.sql

# init/init.sql
CREATE TABLE IF NOT EXISTS savepaint_img_data (
    id SERIAL PRIMARY KEY,
    timestamp timestamp,
    category varchar(100),
    label varchar(100),
    img_height int,
    img_width int,
    original_fn varchar(100),
    processed_fn varchar(100),
    processed boolean
);

docker-compose 파일에서 실행시킬 sql문(init.sql)을 docker-entrypoint-initdb.d/에 포함시킨다.
ex) docker-compose.yaml

# docker-compose.yaml
version: "3"

services:
  postgres-server:
    image: postgres:14.0
    container_name: postgres-server
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
      POSTGRES_DB: mydatabase
    volumes:
      - "./init/:/docker-entrypoint-initdb.d/"

docker compose up -d 로 실행 시 table이 생성됨을 확인할 수 있다.

profile
sshinohs

0개의 댓글