Upgrade to Pro — share decks privately, control downloads, hide ads and more …

git worktree上の開発環境を整備した話

git worktree上の開発環境を整備した話

git worktreeを使った並列開発環境の整備レポートです。
worktreeを作成するコマンドは既にあったものの、各worktree上で独立した開発環境を立ち上げる仕組みがなく、並列開発がしにくい状態でした。そこで compose.override.yml を活用し、既存の compose.yml を使い回しつつネットワークをworktree毎に独立させることで、ポート競合やコンテナ間の名前解決問題を解消しています。
AI Agentとの相性も良く、複数ブランチでの並列開発が現実的に回せる環境が整いました。

More Decks by 株式会社イノベーション(エンジニア)

Other Decks in Technology

Transcript

  1. 整備のきっかけ 対象: it-trend-apiリポジトリ worktreeを作るコマンドは既に存在したが... make wt-2 it-trend-api/ └── .worktrees/ └──

    feature-a/ └── feature-b/ worktree上の開発環境を作るコマンドがなく、並列開発がやりにくかった → worktree上で独立した開発ができるように環境を整備
  2. 解決策: networkを独立したものに分ける 既存のcompose.ymlを使い回しつつ一部の設定を変えるために compose.override.yml を使用してコンテナを構築(各worktreeで独立したnetworkを作成) # compose.yml services: api: networks:

    - it-trend-api-network api-nginx: networks: - it-trend-api-network ︙ # compose.override.yml services: api: networks: !override - worktree-network api-nginx: networks: !override - worktree-network ︙ networks: worktree-network: driver: bridge