0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

dockerのmysqlコンテナが起動しなかった話

Last updated at Posted at 2022-04-18

https://www.engilaboo.com/laravel-docker/
上記記事に沿ってコマンドをポチポチしていたところ、php artisan migrateコマンドでDB接続を確認したときにエラーになった。

原因特定までの過程

本当にDB接続エラーなのかの確認
php artisan tinker
tinkerとは入力した内容を即座に評価して出力してくれる対話型の入出力環境

DB::select('select 1');
かんたんなSELECT文が通るか実行して確認。
同じエラーがでたのでDB接続エラーであることは断定。

restart: alwaysをつけて失敗しても再起動させるようにした。

docker-compose.yaml
version: '3'
services:
  app:
    build: ./docker
    ports:
      - 80:80
    volumes:
      - ./app:/var/www/app
    working_dir: /var/www/app
  db:
    image: mysql:8.0
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_DATABASE: database
      MYSQL_USER: user
      MYSQL_PASSWORD: pass

コンテナを立ち上げ直す
一度コンテナを止めて削除しなくても下記コマンドでアップデートできるようだ(もしかしたら一度止めて削除して、立ち上げを一発でやってくれてるのかも)
docker-compose up -d --build
docker psで確認

vanshiMacBookPro15inch:app suzukitaishi$ docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS                         PORTS                               NAMES
90613db9ee47   laravel-docker_app   "docker-php-entrypoi…"   19 seconds ago   Up 14 seconds                  0.0.0.0:80->80/tcp, :::80->80/tcp   laravel-docker_app_1
4b6ec132459a   mysql:8.0            "docker-entrypoint.s…"   19 seconds ago   Restarting (1) 2 seconds ago                                       laravel-docker_db_1

mysqlコンテナ起動はしたが、STATUSがRestartingにしていて起動はしていても何かでつまづいてはいるようだ。

原因

docker logs {コンテナID}でログを確認
ログの確認方法
https://qiita.com/mom0tomo/items/35dfacb628df1bd3651e

2022-04-18 04:56:10+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started.
2022-04-18 04:56:10+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-04-18 04:56:10+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started.
2022-04-18 04:56:10+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified

docker-composeのパスワードの設定まわりが間違っている様子。

解決

docker-compose.yamlファイルにMYSQL_ROOT_PASSWORDが必要だった。
https://qiita.com/takepan/items/0cbf13af3a0bb2c243ab

とはいえ、またDB接続の違うエラーがでて解消中。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?