Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
release-please で実現する手軽で不変な Docker イメージタグ付け方法
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
chanyou0311
June 28, 2024
Technology
700
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
release-please で実現する手軽で不変な Docker イメージタグ付け方法
おもにクラウドの話してます - 広島 #2 の発表資料です。
https://omoni-cloud.connpass.com/event/320415/
chanyou0311
June 28, 2024
More Decks by chanyou0311
See All by chanyou0311
5分でわかるDuckDB Quack
chanyou0311
4
520
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
3.4k
LookerとADKで作る社内AIエージェント
chanyou0311
0
730
「リリース後」に向き合うAI駆動開発の実践
chanyou0311
0
170
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
10
4.7k
5分でわかるDuckDB
chanyou0311
12
4.9k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
2.2k
データの信頼性を支える仕組みと技術
chanyou0311
6
2.5k
Pulumi に入門してみた
chanyou0311
1
430
Other Decks in Technology
See All in Technology
LLM Content Moderationを支える評価・改善ループの実践
suikabar
1
240
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
190
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
130
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
130
~最速でビジネスインパクトを創出する~ Sansanのデータ基盤と活用事例
sansantech
PRO
0
110
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
330
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
760
Local CI × GitHub Actions
gogutan
3
240
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
180
Optunaの最新リリースv5.0について
pfn
PRO
0
120
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
120
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
290
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
330
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
A Tale of Four Properties
chriscoyier
163
24k
Building AI with AI
inesmontani
PRO
1
1.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
830
The Cult of Friendly URLs
andyhume
79
7k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Building Applications with DynamoDB
mza
96
7.2k
Transcript
release-please で実現する ⼿軽で不変な Docker イメージタグ付け⽅法 chanyou
Yu Nakamura - chanyou ‧ DRE ← Data Engineer ←
SWE ‧ X: @chanyou0311 ‧ Google Cloud ‧ Azure
突然ですが、 コンテナ使ってますか?🙋
プライベートなアプリケーション開発における コンテナ構築⽅法
クラウドにおけるコンテナ技術
実⾏環境としてのコンテナ ‧Kubernetes でアプリケーションを容易にデプロイできる ‧コンテナ化されたアプリケーションの実⾏環境の整備 ‧AWS ECS ‧Azure App Service ‧GCP
Cloud Run
開発体験の良さ ‧ローカル環境と本番環境の差が⼩さい ‧FaaS だとローカルで動作環境⽤意するのが結構⼤変 ‧CI/CD の構築‧運⽤コストが低い ‧CI/CD パイプラインの再利⽤がしやすい
なぜ本番環境でコンテナを採⽤するのだろうか
Immutable Infrastructure の実現 ‧デプロイしやすい ‧スケールしやすい ‧ロールバックしやすい
コンテナ使えば Immutable Infrastructure を すぐに実現できる?
🙅
Immutable な Image が必要
Google Cloud のベストプラクティスを参考に https://cloud.google.com/architecture/best-practices-for-building-containers
https://cloud.google.com/architecture/best-practices-for-building-containers Google Cloud のベストプラクティスを参考に
セマンティック バージョニングを使⽤したタグ付け https://cloud.google.com/architecture/best-practices-for-building-containers
Git commit ハッシュを使⽤したタグ付け https://cloud.google.com/architecture/best-practices-for-building-containers
イメージのタグ付け難しい… ‧SemVer 😊 利便性は⾼い 😢 ⾃らバージョン番号管理するのは⼤変 ‧Git commit hash 😊
タグ付け⾃体は⾃動化すれば簡単 😢 ⼀つ前のバージョン…ってどれ?
いいとこ取りはできないだろうか 🤔
release-please
release-please > Rease Please automates CHANGELOG generation, the creation of
GitHub releases, and version bumps for your projects. ⾃動でリポジトリを SemVer 管理してくれるツール ‧CHANGELOG の更新 ‧GitHub リリースの作成 ‧任意の JSON や YAML ファイルの更新 https://github.com/googleapis/release-please
利⽤⽅法 ‧GitHub Actions (推奨) ‧CLI (npm) ‧GitHub App
どうやってバージョン管理しているのか Conventional Commits に従ってコミットメッセージを記述しておく https://github.com/googleapis/release-please
どうやっているのか release-please はコミットログのパースを⾏うことで次のバージョン番号 を導き出している v1.0.1 のとき fix: typo → v1.0.2
feat: いいね機能の追加 → v1.1.0
GitHub Actions での例
⽤意するもの (GitHub Actions) workflow: .github/workflows/release-please.yaml `uses: googleapis/release-please-action@v4` を呼び出す config: release-please-config.json
モノレポの場合、各サービスの設定を定義する manifest: .release-please-manifest.json モノレポの場合、各サービスのバージョンを記録する 例) {"frontend":"1.7.0","backend":"2.0.2"}
バージョンが更新されるまでの流れ 1. (開発者) Conventional Commits message で commit して push
する 2. (GitHub Actions) release-please (draft-mode) が実⾏されて PR が作成される 3. (開発者) PR をマージする 4. (GitHub Actions) release-please (deploy-mode) が実⾏される ◦ CHANGELOG の更新 ◦ GitHub リリースの作成 ◦ GitHub Actions で任意の処理の実⾏ ▪ ここで Docker Image の build と push を⾏う
デモ
これから個⼈ブログをリリースします
Docker Image のアーキテクチャ
インフラアーキテクチャ
ディレクトリ構成 .github/workflows/release-please.yaml release-please-config.json .release-please-manifest.json app/Dockerfile app/CHANGELOG.md helm/CHANGELOG.md
Docker Image の push までの流れ
まとめ
まとめ ‧release-please で⼿軽に SemVer を導⼊できた ‧⼿軽で不変な Docker Image の構築ができるようになった ‧Immutable
Infrastructure への扉が開かれた…! ‧コミットメッセージの記法に制約がかかる ‧チーム開発に適⽤できるかは要議論 ‧⽣成AIによるメッセージの補完に期待