プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2021/11/08

docker-compose でアプリの起動を遅らせる

event_note2021/11/08 5:34

docker-compose.yml の depends_on はあくまでコンテナの依存関係だけであり、アプリの起動や初期化までは待ってくれません。

現在の docker-compose には condition というのがあり、コンテナの状態をチェックして起動を制御することが可能なようです。

ただ、そのために healthcheck の方法を定義しないといけないなどちょっと面倒だったので、今回は sleep を入れて無理やり起動を遅らせる方法をとりました。

sleep の入れ方ですが、以下の2つの方法を思いつきました。

command で指定する例

docker-compose.yml の command で以下のように記述します。

command: bash -c "sleep 5 && python3 sample.py"

entrypoint で指定

docker-compose.yml の entrypoint で起動時に実行するスクリプトファイルを指定し、そのスクリプトファイルの中で sleep を実行します。

entrypoint: "/hoge/entrypoint.sh"