LoginSignup
0
1

docker-entrypoint-initdb.dが実行されない

Posted at

DockerのMySQLコンテナに初期データを投入したいが、うまくデータが入らない。

開発環境

・OS : Windows10
・MySQL5.6

ディレクトリ
├docker-compose.yml
├docker
 └mysql
  ├my.cnf
  ├Dockerfile
  └initdb.d
   └sample.sql

docker-comopse.yaml
mysql:
    platform: linux/x86_64 
    build:
      context: ./docker/mysql
      dockerfile: Dockerfile
    volumes:
      - db-data:/var/lib/mysql
      - ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./docker/mysql/initdb.d:/docker-entrypoint-initdb.d
    environment:
            - MYSQL_ROOT_PASSWORD=estest
            - MYSQL_DATABASE=test
            - MYSQL_USER=testuser
            - MYSQL_PASSWORD=test

問題点

コンテナを削除してもボリュームは残ってしまうため。
→ボリュームを削除する

解決方法

①コンテナを停止

docker-compose down --volume

②ボリューム確認

docker volume ls

参考:ボリュームを一括削除するときのコマンド

docker volume rm $(docker volume ls -qf dangling=true)

③コンテナ実行

docker-compose up -d --build

これでsample.sqlが実行され、MySQLの初期データが入っていた。

最後に

私はそもそものデータベースの中身が不適切な文法でエラーをはいていたせいで、この問題の解消に時間がかかてしまった。初歩的なミスに十分注意すれば特に問題なくすぐに解消できると思う。

0
1
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
0
1