発生している問題
以下のサイトを参考にして、Docker内でMySQLを使おうとしています。
しかし、Dockerイメージをビルドしたあとにdocker compose up
でコンテナを立ち上げようとすると、db-1 exited with code 1
と表示されMySQLのコンテナが立ち上がりません。
初学者なのでエラーの内容もよく分かっておらず、どうしたらよいか困っています。どなたか解決方法を教えていただけないでしょうか。
試したこと
① Chapter 04に載っているDockerfileおよび、Chapter 11に載っているdocker-compose.yamlをほぼそのまま書き写してルートディレクトリに配置した。
- Dockerfile
docker
1#python3.12のイメージをダウンロード 2FROM python:3.12 3#pythonの出力表示をDocker用に設定 4ENV PYTHONUNBUFFERED=1 5 6WORKDIR /src 7 8#pipを使ってpoetryをインストール 9RUN pip install poetry 10 11#poetryの定義ファイルをコピー(存在する場合) 12COPY pyproject.toml* poetry.lock* ./ 13 14#poetryでライブラリをインストール(pyproject.tomlがすでに存在する場合) 15RUN poetry config virtualenvs.in-project true 16RUN if [ -f pyproject.toml ]; then poetry install --no-root; fi 17 18#uvicornのサーバーを立ち上げる 19ENTRYPOINT ["poetry", "run", "uvicorn", "api.main:app", "--host", "0.0.0.0", "--reload"]
- docker-compose.yaml
yaml
1version: '3' 2services: 3 demo-app: 4 build: . 5 volumes: 6 - .dockervenv:/src/.venv 7 - .:/src 8 ports: 9 - 8000:8000 10 environment: 11 - WATCHFILES_FORCE_POLLING=true 12 db: 13 image: mysql:8 14 platform: linux/x86_64 15 environment: 16 MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' 17 MYSQL_DATABASE: 'demo' 18 TZ: 'Asia/Tokyo' 19 volumes: 20 - mysql_data:/var/lib/mysql 21 command: --default-authentication-plugin=mysql_native_password 22 ports: 23 - 33306:3306 24volumes: 25 mysql_data:
②以下のコマンドでイメージをビルドし、Chapter 05を参考にPoetry環境のセットアップとFastAPIのインストールをおこなった。
PS C:\Users\xxx\fastapi-test> docker compose build PS C:\Users\xxx\fastapi-test> docker compose run --entrypoint "poetry init --name demo-app --dependency fastapi --dependency uvicorn[standard]" demo-app PS C:\Users\xxx\fastapi-test> docker compose run --entrypoint "poetry install --no-root" demo-app
③Chapter 07~Chapter 10で作成したapiディレクトリを配置した。
④docker compose up
を実行すると以下のログが表示され、FastAPIのコンテナは起動したがMySQLのコンテナは起動しなかった。
PS C:\Users\xxx\fastapi-test> docker compose up time="2024-07-15T00:27:00+09:00" level=warning msg="C:\\Users\\xxx\\docker-compose.yaml: `version` is obsolete" [+] Running 2/0 ✔ Container fastapi-test-demo-app-1 Created 0.0s ✔ Container fastapi-test-db-1 Recreated 0.1s Attaching to db-1, demo-app-1 db-1 | 2024-07-15 00:27:01+09:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.38-1.el9 started. db-1 | 2024-07-15 00:27:01+09:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' db-1 | 2024-07-15 00:27:01+09:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.38-1.el9 started. db-1 | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' db-1 | 2024-07-14T15:27:02.150711Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. db-1 | 2024-07-14T15:27:02.152296Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead. db-1 | 2024-07-14T15:27:02.152584Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.38) starting as process 1 db-1 | 2024-07-14T15:27:02.161653Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. db-1 | 2024-07-14T15:27:02.235802Z 1 [ERROR] [MY-012526] [InnoDB] Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2. This redo log was created with MySQL 5.7.44, and it appears logically non empty. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html db-1 | 2024-07-14T15:27:02.235840Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error. db-1 | 2024-07-14T15:27:02.679026Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine db-1 | 2024-07-14T15:27:02.679210Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. iled. db-1 | 2024-07-14T15:27:02.679244Z 0 [ERROR] [MY-010119] [Server] Aborting db-1 | 2024-07-14T15:27:02.679703Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown compldb-1 | 2024-07-14T15:27:02.679244Z 0 [ERROR] [MY-010119] [Server] Aborting db-1 | 2024-07-14T15:27:02.679703Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.38) MySQL Community Server - GPL. db-1 | 2024-07-14T15:27:02.679703Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.38) MySQL Community Server - GPL. db-1 exited with code 1 ete (mysqld 8.0.38) MySQL Community Server - GPL. db-1 exited with code 1 db-1 exited with code 1 demo-app-1 | INFO: Will watch for changes in these directories: ['/src'] demo-app-1 | INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) demo-app-1 | INFO: Started reloader process [1] using WatchFiles demo-app-1 | /src/.venv/lib/python3.12/site-packages/pydantic/_internal/_config.py:341: UserWarning: Valid config keys have changed in V2: demo-app-1 | * 'orm_mode' has been renamed to 'from_attributes' demo-app-1 | warnings.warn(message, UserWarning) demo-app-1 | INFO: Started server process [10] demo-app-1 | INFO: Waiting for application startup. demo-app-1 | INFO: Application startup complete.
補足情報(FW/ツールのバージョンなど)
- OS: Windows 11 Home
- エディタ: Visual Studio Code 1.91.1
- ターミナル: Windows PowerShell
- Docker Desktop 4.31.1
PS C:\Users\xxx\fastapi-test> docker compose version Docker Compose version v2.27.1-desktop.1
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/07/15 01:33