Tiltで別レポジトリにあるdocker-compose.ymlを扱う

メリークリスマス!一昨日書いた、こちらの記事の続きです。

haibara-works.hatenablog.com

↑こちらの記事では、Devcontainer で Tilt の環境をつくり、Docker Compose で記述されたサービスを Tilt 経由で起動することができました。

今回は、docker-compose.ymlDockerfile が、Tiltfile とは別のレポジトリにある状況での起動を試します。

Tiltfile

公式ドキュメントの "Managing other git Repositories" の項目に、ドンピシャの記述があります。

docs.tilt.dev

git_resource という extension を使えば、Tiltfile に remote のレポジトリを checkout させたり、他ディレクトリのプロジェクトを読み込ませるするような記述ができるようになるとのこと。 これを使ってみます。

github.com

実際に書いた Tiltfile はこちら。

# -*- mode: Python -*-

version_settings(constraint='>=0.33.21')

# Extentions
load('ext://git_resource', 'git_checkout')

# App1
app1_dir = './repos/app1'
git_checkout('git@github.com:w-haibara/tilt-sample-app-1.git', app1_dir)

docker_compose(app1_dir + '/docker-compose.yml')

docker_build(
  'sample/app1',
  app1_dir,
  live_update = [
    sync(app1_dir, '/app'),

    restart_container()
  ])

dc_resource('app1', labels=["api"])

これで https://github.com/w-haibara/tilt-sample-app-1 にある docker-compose.yml を読むことができます。

おわりに

git_resource extension をみると、一部 k8s を使っていない場合にエラーになりそうな部分があったので、そちらの検証も別途やってみたいと思います。