Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
並列開発を支援するツールを作った話
Search
harachan
September 16, 2025
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
並列開発を支援するツールを作った話
harachan
September 16, 2025
More Decks by harachan
See All by harachan
設計の進め方と 品質特性品質特性
harakeishi
0
6
golang.tokyo発表資料(whrisというコマンドを作った話)
harakeishi
0
37
Other Decks in Technology
See All in Technology
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
180
エンタープライズデータへ安全につなぐ Production-ready なエージェント設計 ― AI × MCP リファレンスアーキテクチャ ― #AIDevDay
cdataj
1
180
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
130
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
0
150
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
480
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
320
データ活用研修 問いの発見と仮説構築【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
560
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
790
AIで楽になるはずが、なぜ疲れる?
kinopeee
0
130
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
400
AI研修(Day2)【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
1.3k
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
470
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
390
Producing Creativity
orderedlist
PRO
348
40k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1k
RailsConf 2023
tenderlove
30
1.5k
Why Our Code Smells
bkeepers
PRO
340
58k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
BBQ
matthewcrist
89
10k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
1 ฒྻ։ൃΛࢧԉ͢Δ πʔϧΛ࡞ͬͨ ϩϦϙοϓϜʔϜʔυϝΠϯࣄۀ෦ ݪ ܛ࢜
2 ࣗݾհ ϩϦϙοϓϜʔϜʔυϝΠϯࣄۀ෦ 2020 ৽ଔೖࣾ ݪ ܛ࢜ Keishi Hara •
ϗεςΟϯάαʔϏεΛ࡞ͬͯ·͢ • ઃܭͷΛ͢Δͷ͕͖Ͱ͢ • Go, Rails Λओʹ৮͍ͬͯ·͢ • GoͰcliπʔϧΛ࡞Δͷ͕͖Ͱ͢ • ࠷ۙ whris ͕100starΒ͍خ͍͠ • ϒϩά: yaserarenai.dev • X : @harachan_02206
AIΤʔδΣϯτͬͯ·͔͢ʁ 3
AIίʔσΟϯάΤʔδΣϯτศརʂʂ 4 ϝΠϯλεΫ ςετ࡞ ↓ ࣮ ↓ ςετ αϒλεΫ طଘίʔυͷௐࠪ
& υΩϡϝϯτԽ αϒλεΫ খ͞Ίͷ मਖ਼λεΫ αϒλεΫ ࣍ͷλεΫͷ༧උ ௐࠪ ˍ جຊઃܭॻͷ࡞
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
ฒྻ։ൃͷΓํ 6 • ϙʔτόΠϯσΟϯάͷিಥ ◦ ྫ: ෳͷAPIαʔόʔ͕ಉ͡ :8080 Λୣ͍߹͏ •
ωοτϫʔΫઃఆͷিಥ ◦ ಉ໊͡લͷωοτϫʔΫ͕࡞ΒΕࣦͯഊ͢Δ docker compose ͰෳڥΛ্ཱͪ͛Δͱ…
ฒྻ։ൃͷΓํ 7 • compose.ymlͷमਖ਼ ◦ ຖճஆ͔͍ख࡞ۀͰͷมߋ ◦ compose.ymlͷϙʔτωοτϫʔΫ෦Λڥม͔ΒಡΈࠐΉΑ͏ʹ͢Δ ▪ makeϑΝΠϧͳͲͰڥมΛࣗಈઃఆ
etc… ͔͠͠ɺcompose.ymlͷมߋ͕ࠩͰͯޡcommitͳͲͯ͠͠·͏ ղܾ๏
ͦ͜Ͱ͓͢͢Ίͳͷ͕ʂʂ 8
https://github.com/harakeishi/gopose 9
gopose is ͳʹʁ • ϙʔτিಥͷࣗಈղܾ ◦ γεςϜͰطʹ༻தͷϗετϙʔτͱɺComposeͷॏෳϙʔτΛݕग़͠ɺۭ͍͍ͯΔ ϙʔτࣗಈஔɻ • DockerωοτϫʔΫিಥͷճආ
◦ طଘDockerωοτϫʔΫͷαϒωοτωοτϫʔΫ໊ͱিಥ͢ΔComposeωοτϫʔΫ Λݕग़͠ɺ҆શͳସαϒωοτࣗಈஔɻ • ඇഁյతͳద༻ ◦ ݩͷ docker-compose.yml มߋͤͣɺࠩͷΈΛ docker-compose.override.yml ͱͯ͠ग़ྗ 10
# ϝΠϯ։ൃσΟϨΫτϦ $ cd path/hoge # ϝΠϯͷ։ൃڥΛ্ཱͪ͛ $ docker compose
up -d # αϒλεΫͷϫʔΫεϖʔεʹҠಈ $ cd ../hoge.work1 # goposeͰিಥճආͷoverride.ymlΛ࡞ $ gopose up # αϒλεΫͷ։ൃڥ্ཱͪ͛ $ docker compose up -d goposeͷ͍ํ 11
# 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
• ϙʔτিಥͷࣗಈղܾ a. compose.ymlͷதΛղੳ b. netstat -an ͷ݁ՌΛղੳ c. িಥΛݕ͠ɺoverride.ymlʹॻ͖ग़͠
• DockerωοτϫʔΫিಥͷճආ a. docker network ls/inspect ͰωοτϫʔΫ໊ͱαϒωοτΛऩू b. ComposeͷωοτϫʔΫ͝ͱʹɺ࣮ࡍʹੜ͞ΕΔωοτϫʔΫ໊ʢ-p/--project-name Ͱ͘ ಄ࣙʣͱαϒωοτΛٻΊɺ໊લিಥͱαϒωοτিಥΛݕग़ c. ඞཁ͕͋Ε)ݻఆIP࠶ׂ େ·͔ͳಈ࡞༰ 13
14 Thank you!