tomoken321
@tomoken321 (けん とも)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Dockerでmysqlコンテナが起動後すぐにexited (1)になってしまう

前提

docker-composeでlaravelの環境を立ち上げようとしているのですが、mysqlのコンテナが起動後すぐにexited (1) になってしまいます。

3日前くらいまでは起動していたのですが、急に正しい動作しなくなってしまいました。

実現したいこと

  • docker-composeでmysqlコンテナの起動がしたいです

発生している問題・エラーメッセージ

  • docker-compose up- d で起動をすると、mysqlコンテナのみすぐにexited (1) になってしまいます
❯ docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
mysql_fargate       "docker-entrypoint.s…"   db                  exited (1)
nginx_fargate       "/docker-entrypoint.…"   web                 running             0.0.0.0:80->80/tcp
php_fargate         "docker-php-entrypoi…"   app                 running             9000/tcp
  • docker-compose logs dbでログを見ると以下のようなエラーがでています。
mysql_fargate  | chown: changing ownership of './proc/94/task/96': Operation not permitted
mysql_fargate  | chown: cannot access './proc/94/task/96/fd/4': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fd/5': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fd/6': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fd/7': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fd/8': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fd/9': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fdinfo/4': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fdinfo/5': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fdinfo/6': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fdinfo/7': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fdinfo/8': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/task/96/fdinfo/9': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fd/4': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fd/5': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fd/6': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fd/7': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fdinfo/4': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fdinfo/5': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fdinfo/6': No such file or directory
mysql_fargate  | chown: cannot access './proc/94/fdinfo/7': No such file or directory

権限周りの知識がなくご教授いただければ幸いです。

該当のソースコード

FROM --platform=linux/amd64 mysql:8.0

COPY ./docker/mysql/my.cnf /etc/my.cnf
FROM php:8.0-fpm

# COPY php.ini
COPY ./docker/php/php.ini /usr/local/etc/php/php.ini

# Composer install
COPY --from=composer:2.0 /usr/bin/composer /usr/bin/composer

# install Node.js
COPY --from=node:lts /usr/local/bin /usr/local/bin
COPY --from=node:lts /usr/local/lib /usr/local/lib

RUN apt-get update && \
    apt-get -y install \
    git \
    zip \
    unzip \
    vim \
    && docker-php-ext-install pdo_mysql bcmath

WORKDIR /var/www/html
FROM nginx:1.18-alpine

ENV TZ Asia/Tokyo

# nginx config file
COPY ./docker/nginx/*.conf /etc/nginx/conf.d/

WORKDIR /var/www/html
  • docker-compose.yml↓
version: '3.3'

services:
  app:
    build:
      context: .
      dockerfile: ./docker/php/Dockerfile
    container_name: php_fargate
    volumes:
      - ./src/:/var/www/html
    environment:
      - DB_CONNECTION=mysql
      - DB_HOST=db
      - DB_PORT=3306
      - DB_DATABASE=${DB_NAME}
      - DB_USERNAME=${DB_USER}
      - DB_PASSWORD=${DB_PASSWORD}
      - "TZ=Asia/Tokyo"

  web:
    build:
      context: .
      dockerfile: ./docker/nginx/Dockerfile
    container_name: nginx_fargate
    ports:
      - ${WEB_PORT}:80
    depends_on:
      - app
    volumes:
      - ./src/:/var/www/html

  db:
    build:
      context: .
      dockerfile: ./docker/mysql/Dockerfile
    container_name: mysql_fargate
    ports:
      - ${DB_PORT}:3306
    environment:
      MYSQL_DATABASE: ${DB_NAME}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      TZ: 'Asia/Tokyo'
    volumes:
      - mysql-volume:/var/lib/mysql

volumes:
  mysql-volume:

試したこと

  • docker system prune -aやvolumeの削除
  • docker image, docker container の削除
  • portの変更
  • docker descktopでメモリの増加
  • 他のコードでも試したのですが、うまく起動していないです

補足情報(FW/ツールのバージョンなど)

  • Apple M1 Pro
  • Laravel Framework 9.26.1
  • node v16.17.0
0

1Answer

本日、同じ症状に行き当たりました、、
原因は全く分からないのですが、次の対応でとり急ぎ解消しましたのでご参考までに掲載します。
 
(1) ./docker/mysql/my.cnfファイルからログ出力関連の設定を全て削除する
(2) $ docker compose up --build する (別のエラーで起動失敗する)
(3) db用のボリュームを削除する
(4) もう一度 $ docker compose up --build する
 
※(1)の設定を戻すとまた同じエラーになるかは未検証です。
※(3)について参考にした記事
https://qiita.com/amagurix/items/4a3eba263aab5f0936d5

6Like

Your answer might help someone💌