LoginSignup
17
10

More than 5 years have passed since last update.

Docker Compose でMySQLが起動するまで待つ

Posted at

やりたいこと

MySQLのコンテナがちゃんと立ち上がるまで任意のコンテナの実行を待ちたい

試したこと

depends_on

docker-compose up を実行したら、依存関係のある順番に従ってサービスを起動します。

いけるやん

と思ったら

注釈
depends_on では、 web の実行にあたり、 db と radis の準備が整うのを待てません。待てるのはコンテナを開始するまでです。サービスの準備が整うまで待たせる必要がある場合は、 起動順番の制御 に関するドキュメントで、問題への対処法や方針をご確認ください。

だめやん…。

ENTRYPOINT ["entrypoint.sh"]

ここを読むと、結局スクリプトで制御するしかない模様

MySQLの死活監視

mysqladminコマンドでできる。mysql-client的なパッケージを入れておけば使える(jessieにて確認)

結論

こういう感じでやりました

entrypoint.sh
#!/bin/bash

until mysqladmin ping -h mysql_host --silent; do
    echo 'waiting for mysqld to be connectable...'
    sleep 3
done

./nin-i-no-shori
17
10
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
17
10