2022.11.02  

【docker-compose】mysqlのコンテナだけ立ち上がらない

Docker,  MySQL    

今まで上手く動作していたmysql(ver 5.7)のコンテナが急にエラーとなり、exit1 で立ち上がらなくなりました。
構成はdocker-composeでdjango、mysql、nginxを動かしています。

# docker-compose ps
        Name                    Command           State           Ports         
--------------------------------------------------------------------------------
db_1       docker-entrypoint.sh      exited (1)   xxxx            
nginx_1    nginx -g daemon off;      Up             xxxx   
python_1   uwsgi --socket :8001      Up           xxxx                  
$ docker-compose logs

db_1      | 2022-11-02 00:29:24+09:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
db_1      |     command was: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --verbose --help --log-bin-index=/tmp/tmp.t5V1KFKTOr
db_1      |     mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
db_1      | mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

/etc/mysql/conf.dのディレクトリが無いよと言われています。
このディレクトリにはmy.cnfを配置してmysqlの設定を読み込ませるところのようですが、その設定はdocker-compose.yamlのcommand部分で渡しているので不要かと思っていました。

# docker-compose.yaml 抜粋
  db:
      build: ./mysql
      command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
      ports:
        - "3306:3306"

なぜ急にエラーになるようになったのかは不明ですが、docker-compose.yamlが配置してある箇所にあるmysqlディレクトリのDockerfileを次のように修正したところコンテナが立ち上がるようになりました。

# ディレクトリ構成抜粋
.
├── docker-compose.yaml 
└── mysql
          └── Dockerfile
# Dockerfile
FROM mysql:5.7

RUN mkdir -p /etc/mysql/conf.d  # 追加
# docker-compose up -d --build
・・・・
# docker-compose ps
        Name                    Command           State           Ports         
--------------------------------------------------------------------------------
db_1       docker-entrypoint.sh     Up   xxxx            
nginx_1    nginx -g daemon off;      Up     xxxx   
python_1   uwsgi --socket :8001      Up      xxxx                  
コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信