LoginSignup
1
0

docker compose up -d でデータベースが作成されない時にやること

Last updated at Posted at 2024-01-28

はじめに

環境構築時にdocker compose up -dでデータベースが作成されなくて、少しハマってしまったのでメモとして残しておく。

docker-compose.yml
version: '3'

services:
  mysql:
    image: mysql:8.0
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --skip-character-set-client-handshake
    volumes:
      - ./mysql/data:/var/lib/mysql #永続化
      - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql #初期データ投入
      - ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
    ports: #ローカルでmysqld.exeが動いているため、ホスト側のポートを3307に変更
      - "3307:3306"
    environment: #作成するDB名,ルートユーザのパスワード,DBを操作するユーザ,タイムゾーン
      MYSQL_DATABASE: db_01
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: test
      MYSQL_PASSWORD: test
      TZ: Asia/Tokyo

手順

1. コンテナだけでなく、ボリュームも削除

docker compose down -v

2. 永続化用のディレクトリを削除(今回のケースだとdata以降)

rm -rf mysql/data/*

4. Dockerコンテナ起動

docker compose up -d

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0