😽
Docker Composeでデータベースが作成されない
はじめに
最近FastAPIの勉強を始めたのですが、Docker周りでこけたので解決法をまとめます
問題
docker compose up
↓
docker compose exec db mysql hoge
↓
ERROR 1049 (42000): Unknown database 'hoge'
以下の構成で docker compose up
を実行しましたが、 hoge
データベースが作成されませんでした。
docker-compose.yml
services:
# ... (FastAPIのサービス設定)
db:
image: mysql:8.0
platform: linux/arm64
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "hoge" # ここで 'hoge' データベースを指定
TZ: "Asia/Tokyo"
volumes:
- mysql_data:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
ports:
- 3306:3306
volumes:
mysql_data:
解決方法
# -v オプションでコンテナだけでなくボリュームも削除する
docker compose down -v
# 新しい環境でDocker Composeが再起動
docker compose up
おわりに
最初の docker compose up
実行時にシンタックスエラーを起こしたのですが、その影響でコンテナやボリュームが意図しない形で作成された事が原因なのかなと思ってます。
Discussion