본문으로 바로가기
728x90
반응형
SMALL
version: '3'

services:
  mysql:
    container_name: dev-db
    image: mysql:8.0.34
    volumes:
      - /hdd/apps/test/data/mysql:/var/lib/mysql:rw
      - /hdd/apps/test/initdb.d/test.sql:/data/application/init.sql
      - /hdd/apps/test/data/logs/mysql:/var/log/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 1234
      MYSQL_DATABASE: test
      MYSQL_USER: test
      MYSQL_PASSWORD: test123
      TZ: Etc/GMT
    ports:
      - 625:3306
    command:
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8mb3
      - --lower_case_table_names=1
      - --init-file=/data/application/init.sql

volumes에 test.sql을  /data/application/init.sql 에 바인딩 시킨뒤

command에 --init-file=/data/application/init.sql 로 도커 내부 경로를 선언하자.

 

test.sql

USE test;

CREATE TABLE test123 (
    `id`        INT          NOT NULL AUTO_INCREMENT,
    `name`      VARCHAR(25)  NOT NULL UNIQUE,
    `priority`  TINYINT      NOT NULL,
    PRIMARY KEY (id)
)
    comment 'test';

 

 

정상적으로 실행된다면 테이블이 만들어지며

테이블이 존재할 경우 로그로 확인이 가능하다.

 

728x90
반응형
LIST