본문 바로가기

Infra/[K8S & Docker]

[Docker] Mariadb 간헐적 초기화 발생

반응형

간헐적으로 초기화가 발생한다. 정확히는 디비 정보가 유실된다.

그래서 무조건, 볼륨 마운트를 진행해야한다. 혹시라도 다시 온되더라도 정보를 그대로 끌고갈수 있게 

그래서 하위와 같이 스크립트 파일을 쓰다가

version: "3.2"
services:
  database:
    container_name: database
    image: mariadb
    volumes:
      - ~/docker/mariadb/etc/mysql/conf.d:/etc/mysql/conf.d:ro
      - ~/docker/mariadb/var/lib/mysql:/var/lib/mysql
      - ~/docker/mariadb/var/log/maria:/var/log/maria
    environment:
      - MYSQL_DATABASE=db1
      - MYSQL_ROOT_PASSWORD=1234
      - MYSQL_ROOT_HOST=%
    command: ['--character-set-server=utf8mb4','--innodb-read-only-compressed=OFF','--collation-server=utf8mb4_unicode_ci','--transaction-isolation=READ-COMMITTED']
    ports:
      - 3306:3306

 

아래의 형태로 바꿨다.

version: "3.2"
services:
  database:
    container_name: database
    image: mariadb
    volumes:
      - ./db/conf.d:/etc/mysql/conf.d
      - ./db/data:/var/lib/mysql

    environment:
      - MYSQL_DATABASE=db1
      - MYSQL_ROOT_PASSWORD=1234
      - MYSQL_ROOT_HOST=%
    command: ['--character-set-server=utf8mb4','--innodb-read-only-compressed=OFF','--collation-server=utf8mb4_unicode_ci','--transaction-isolation=READ-COMMITTED']
    ports:
      - 3306:3306

 

conf.d ro가 왜 붙었는지 기억은 안나지만 무튼 프로젝트내의 경로로 변경했다. 사유는..각 프로젝트 별로, 이미지 별로 로그와 데이터를 분기해서 관리하고자 위함이다.

 

반응형