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이 생성됨을 확인할 수 있다.