Docker composeでのコンテナ起動順番の変更

この記事を読むと得られる情報

  • Docker composeでのコンテナの起動順番の制御方法
  • Docker composeのyamlファイル変更時のお作法

Docker composeでのコンテナの起動順番を変更したい!

Dockerをバリバリ使われている諸兄らには基本中の基本すぎる内容かとは思いますが、自分がDocker composeでアプリの起動順番を制御しようと思ったらしょーもないところで時間を無駄にしたので備忘録としてその痕跡を残します。

早速本題ですが、コンテナの起動順番を制御するには「depends_on」のオプションを使いましょう。
以下のようにyamlファイルを書くことでservice2のコンテナが立ち上がってからservice1のコンテナが起動します。

version: '3.8'

services:
  service1:
    image: example/service1
    restart: always
    depends_on:
      - service2

  service2:
    image: example/service2
    restart: on-failure

※サービス起動チェックはしていないので、コンテナ間の通信担保はありません。

正直、「depends_on」のオプションは私も知ってたんですがどう書き換えても設定が読み込まれず困っていたところしょうもない勘違いをしてました。
それがコンテナの再起動方法
yamlファイルを修正したあとはいかのようにupコマンドで立ち上げ直さないと再起動時のオプションや起動順番は反映されません

# ダメな例
docker copmose stop
docker compose start

# 正しい例
docker copmose stop
docker compose up -d

docker compose startで上げてたらyamlの変更内容が反映されず、だいぶ時間を無駄にしてしまった…反省