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 3 years have passed since last update.

M1 MacbookでDockerでMySQLを立ち上げる時にハマった

Posted at

docker compose up でつまずいた

Dockerfile NGパターン

FROM mysql:5.7

エラー内容

docker: no matching manifest for linux/arm64/v8 in the manifest list entries.

Dockerfileまたはdocker-compose.ymlでplatformを指定する
Dockerfileの場合

FROM --platform=linux/x86_64 mysql:5.7

docker-compose.ymlの場合

  mysql:
    image: mysql:5.7
    platform: linux/x86_64

これで、docker compose upは問題なく通りました。

DBがうまく起動していない

migrateで失敗したため、DBコンテナを調べると以下のようなログが出てMySQLの起動に失敗していました。

[ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_PASSWORD cannot be used for the root user
    Use one of the following to control the root user password:
    - MYSQL_ROOT_PASSWORD
    - MYSQL_ALLOW_EMPTY_PASSWORD
    - MYSQL_RANDOM_ROOT_PASSWORD

エラー内容を翻訳すると

MYSQL_PASSWORDはrootユーザーには使用できません

開発環境なので以下のような設定をしていたのがダメになったみたいです...
docker-compose.yml NGパターン

  mysql:
    build: ./docker/mysql
    container_name: "hogehoge-db"
    restart: always
    environment:
      MYSQL_DATABASE: hogehoge-db
      MYSQL_USER: root
      MYSQL_PASSWORD: root
      MYSQL_ROOT_PASSWORD: root

MYSQL_USERがrootなのが問題なので以下のように修正しました。
docker-compose.yml OKパターン

  mysql:
    build: ./docker/mysql
    container_name: "hogehoge-db"
    restart: always
    environment:
      MYSQL_DATABASE: hogehoge-db
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: passw0rd

以前から動いていた設定だったため見つけるまでに時間がかかってしまいました...
初心にかえってログを見る、これ大事。

以上、お疲れ様でした。

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?