2日目 Docker compose watch

Posted by shikixyx on Tue, Oct 17, 2023

読んだブログ

Docker Compose Watchのすすめ

内容

docker compose watch コマンドが便利だよ、と言うお話。

参考:Use Compose Watch

使い方

 1services:
 2  web:
 3    build: .
 4    command: npm start
 5    develop:
 6      watch:
 7        - action: sync
 8          path: ./web
 9          target: /src/web
10          ignore:
11            - node_modules/
12        - action: rebuild
13          path: package.json

develop.watch フィールドに syncrebuild を用意する。

  • sync
    • path以下で指定したファイルに変更があれば、コンテナ上に反映させる
    • hot reloadをサポートするために必要
  • rebuild
    • 指定したファイルに変更があった際に、新しいイメージをビルドし直す
    • docker compose up --build と同じ

起動する際は、 docker compose watch で良い。

感想

  • 自チームのプロダクトでは、GoでAirを使ってhot reloadを実現してるが、その代替となりうるか。
    • ただ、airよりはhot reloadが遅くなるので合わないかも
      • airの場合は、変更を検知して make build を実行してバイナリ実行をコンテナ上で即座に実施できる
      • 一方、この方法を使うと、imageからビルドし直すので、不必要なステップも踏みそう
        • 適切にキャッシュしていると問題ないかも?要検証