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

並列開発を支援するツールを作った話

Avatar for harachan harachan
September 16, 2025

 並列開発を支援するツールを作った話

Avatar for harachan

harachan

September 16, 2025
Tweet

More Decks by harachan

Other Decks in Technology

Transcript

  1. 2 ࣗݾ঺հ ϩϦϙοϓϜʔϜʔυϝΠϯࣄۀ෦ 2020೥ ৽ଔೖࣾ ݪ ܛ࢜ Keishi Hara •

    ϗεςΟϯάαʔϏεΛ࡞ͬͯ·͢ • ઃܭͷ࿩Λ͢Δͷ͕޷͖Ͱ͢ • Go, Rails Λओʹ৮͍ͬͯ·͢ • GoͰcliπʔϧΛ࡞Δͷ͕޷͖Ͱ͢ • ࠷ۙ whris ͕100star΋Β͍خ͍͠ • ϒϩά: yaserarenai.dev • X : @harachan_02206
  2. AIίʔσΟϯάΤʔδΣϯτศརʂʂ 4 ϝΠϯλεΫ ςετ࡞੒ ↓ ࣮૷ ↓ ςετ αϒλεΫ طଘίʔυͷௐࠪ

    & υΩϡϝϯτԽ αϒλεΫ খ͞Ίͷ मਖ਼λεΫ αϒλεΫ ࣍ͷλεΫͷ༧උ ௐࠪ ˍ جຊઃܭॻͷ࡞੒
  3. AIίʔσΟϯάΤʔδΣϯτศརʂʂ 5 git worktree # ϝΠϯ։ൃσΟϨΫτϦ $ cd path/hoge #

    work1 ༻ͷϒϥϯνͱ࡞ۀσΟϨΫτϦΛ௥Ճ $ git worktree add ../hoge.work1 -b feature/work1 # work2 ༻ $ git worktree add ../hoge.work2 -b feature/work2 # work3 ༻ $ git worktree add ../hoge.work3 -b feature/work3 # ͦΕͧΕͷϫʔΫεϖʔε͕Ͱ͖͍ͯΔ $ ls -la ../ hoge hoge.work1 hoge.work2 hoge.work3
  4. ฒྻ։ൃͷ΍Γํ 6 • ϙʔτόΠϯσΟϯάͷিಥ ◦ ྫ: ෳ਺ͷAPIαʔόʔ͕ಉ͡ :8080 Λୣ͍߹͏ •

    ωοτϫʔΫઃఆͷিಥ ◦ ಉ໊͡લͷωοτϫʔΫ͕࡞ΒΕࣦͯഊ͢Δ docker compose Ͱෳ਺؀ڥΛ্ཱͪ͛Δͱ…
  5. gopose is ͳʹʁ • ϙʔτিಥͷࣗಈղܾ ◦ γεςϜͰطʹ࢖༻தͷϗετϙʔτͱɺCompose಺ͷॏෳϙʔτΛݕग़͠ɺۭ͍͍ͯΔ ϙʔτ΁ࣗಈஔ׵ɻ • DockerωοτϫʔΫিಥͷճආ

    ◦ طଘDockerωοτϫʔΫͷαϒωοτ΍ωοτϫʔΫ໊ͱিಥ͢ΔComposeωοτϫʔΫ Λݕग़͠ɺ҆શͳ୅ସαϒωοτ΁ࣗಈஔ׵ɻ • ඇഁյతͳద༻ ◦ ݩͷ docker-compose.yml ͸มߋͤͣɺࠩ෼ͷΈΛ docker-compose.override.yml ͱͯ͠ग़ྗ 10
  6. # ϝΠϯ։ൃσΟϨΫτϦ $ cd path/hoge # ϝΠϯͷ։ൃ؀ڥΛ্ཱͪ͛ $ docker compose

    up -d # αϒλεΫͷϫʔΫεϖʔεʹҠಈ $ cd ../hoge.work1 # goposeͰিಥճආͷoverride.ymlΛ࡞੒ $ gopose up # αϒλεΫͷ։ൃ؀ڥ্ཱͪ͛ $ docker compose up -d goposeͷ࢖͍ํ 11
  7. # Docker Compose Override File # Generated by gopose (Go

    Port Override Solution Engine) name: hoge.work1 services: frontend: ports: !override - "8000:80" networks: hoge_net: ipv4_address: 10.20.0.16 backend: ports: !override - "8001:80" networks: hoge_net: ipv4_address: 10.20.0.12 mysql: ports: !override - "8006:3306" networks: hoge_net: ipv4_address: 10.20.0.10 networks: hoge_net: ipam: config: - subnet: "10.20.0.0/24" override.yml͜Μͳײ͡Ͱ͢ 12
  8. • ϙʔτিಥͷࣗಈղܾ a. compose.ymlͷத਎Λղੳ b. netstat -an ͷ݁ՌΛղੳ c. িಥΛݕ஌͠ɺoverride.ymlʹॻ͖ग़͠

    • DockerωοτϫʔΫিಥͷճආ a. docker network ls/inspect ͰωοτϫʔΫ໊ͱαϒωοτΛऩू b. ComposeͷωοτϫʔΫ͝ͱʹɺ࣮ࡍʹੜ੒͞ΕΔωοτϫʔΫ໊ʢ-p/--project-name Ͱ෇͘ ઀಄ࣙʣͱαϒωοτΛٻΊɺ໊લিಥͱαϒωοτিಥΛݕग़ c. ඞཁ͕͋Ε͹)ݻఆIP࠶ׂ౰ େ·͔ͳಈ࡞಺༰ 13