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
Build Docker Images with Bazel
Search
micnncim
September 05, 2019
Programming
4
770
Build Docker Images with Bazel
Docker Meetup Tokyo #32
https://dockerjp.connpass.com/event/144717
micnncim
September 05, 2019
Tweet
Share
More Decks by micnncim
See All by micnncim
Spanner Autoscaler
micnncim
1
500
Accelerate Go development with Bazel
micnncim
9
7.3k
Protocol Buffers Language Server
micnncim
1
3.2k
How Uber "Go"es Recap
micnncim
2
2.5k
We want AWESOME CLI tool & development
micnncim
9
5.2k
GoReleaser: Release and Distribute Go Application
micnncim
9
1.1k
Other Decks in Programming
See All in Programming
Unity Android XR入門
sakutama_11
0
140
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
490
Kanzawa.rbのLT大会を支える技術の裏側を変更する Ruby on Rails + Litestream 編
muryoimpl
0
220
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
370
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
240
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
360
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
110
CNCF Project の作者が考えている OSS の運営
utam0k
5
690
Compose でデザインと実装の差異を減らすための取り組み
oidy
1
300
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
230
2024年のkintone API振り返りと2025年 / kintone API look back in 2024
tasshi
0
210
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
4
1.3k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.5k
Writing Fast Ruby
sferik
628
61k
Making Projects Easy
brettharned
116
6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
For a Future-Friendly Web
brad_frost
176
9.5k
4 Signs Your Business is Dying
shpigford
182
22k
Typedesign – Prime Four
hannesfritz
40
2.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Cult of Friendly URLs
andyhume
78
6.2k
It's Worth the Effort
3n
184
28k
Designing for Performance
lara
604
68k
Transcript
@micnncim Build Docker Images with Bazel Docker Meetup Tokyo #32
Presentation Outline Today's Agenda About Me How to build Docker
Image? What is Bazel? How good is Bazel for Docker? How to use Bazel for Docker? Recap
micnncim Twitter: @micnncim GitHub: @micnncim University Student / B4 Interest:
Go, Cloud Native, DevOps Favorite Base Image: distroless Blog: micnncim.github.io
Let's Build Docker Images EXPLORE THE WAYS TO BUILD DOCKER
IMAGES
How to build Docker Image? `docker image build` これまで Docker
Image をビルドすると いえば、これ BuildKit, kaniko, Buildah, ... " 次世代 Docker ビルドツール" は たくさんある 特に BuildKit の勢いがある Bazel 今⽇紹介するのはこれ
Bazel
What is Bazel? Fast 並列ビルドと キャッシュによる差分ビルドで速い リモートキャッシュにも対応 Correct ツールのバージョン固定や sandbox
化された環境でのビルドにより ワークスペースを汚染せず 再現性の⾼いビルドを⾏う Multi-language Docker に限らず 様々な⾔語・プラットフォームに対応 C++, Java, Python, Swift, Kotlin, Go, Rust, Scala, TypeScript, etc. Extensible Starlark という Python のサブセット⾔語で 拡張可能 WORKSPACE, BUILD(.bazel) といった ファイルを配置する
How good is Bazel for Docker? Develop with Docker +
Bazel
How good is Bazel for Docker? Docker Image Optimization デフォルトで
distoless を ベースイメージとし イメージサイズを ⾃動で最⼩化する ↓ テンプレート的な Dockerfile の数を 減らせる All in Bazel Build, Push, Pull に Docker を利⽤せず すべてが Bazel で 完結する
How to use Bazel for Docker? The usage for Bazel
+ Docker
bazelbuild/rules_docker HANDLE DOCKER Bazel ファイルに記述するだけで 利⽤可能 BUILD / PUSH /
PULL Bazel だけで Docker Image の Build, Push, Pull が出来る SUPPORT LANGUAGES go_image, py_image など 各⾔語⽤の `lang_image` が⽤意されている https://github.com/bazelbuild/rules_docker
Build with container_image
Build with go_image
Build with go_image
Pull with container_pull
Push with container_push
RECAP DOCKER IMAGE OPTIMIZATION ⾃動で最適化し、最⼩イメージを 作ってくれる ALL IN BAZEL エコシステムが
Bazel で完結する
See Also https://bazel.build http://github.com/ bazelbuild/bazel https://github.com/ bazelbuild/rules_docker
Twitter @micnncim Thank you! Presented by @micnncim GitHub @micnncim