matobaの備忘録

育児しながら働くあるエンジニアの記録

docker-composeでRedisの起動を待つ

以前書いた、この記事のRedis版。

blog.mtb-production.info

こんな感じでhealthcheckを定義する。

  redis:
    image: redis:7
    ...
    healthcheck:
      test: [ "CMD", "redis-cli", "ping" ]
      interval: 5s
      timeout: 3s
      retries: 5

これと合わせてMySQL版の記事を見ることで使えるはず。

この辺のstackoveflowを見て確認した情報の日本語版。

stackoverflow.com

正直、RedisとDBを同時に使っているケースはあり、docker-composeに限って言うなら、DBアクセスができるなら、Redisも起動していることが多いと思う。が、念の為、依存関係を指定したかったので調べた。

あと、pingでは書き込みに失敗しているケースを検知できないのでincrを使って書き込みテストを行う話も出ていた。

  redis:
    image: redis:7
    ...
    healthcheck:
      test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
      interval: 5s
      timeout: 3s
      retries: 5