Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Build Docker Images with Bazel
micnncim
September 05, 2019
Programming
4
600
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
360
Accelerate Go development with Bazel
micnncim
9
5.7k
Protocol Buffers Language Server
micnncim
1
2.8k
How Uber "Go"es Recap
micnncim
2
2k
We want AWESOME CLI tool & development
micnncim
9
4.4k
GoReleaser: Release and Distribute Go Application
micnncim
9
880
Other Decks in Programming
See All in Programming
コンピュータビジョンセミナー2 / computer_vision_seminar_libSGM
fixstars
0
310
kakutanitalk2022_opening_act
shirotamaki
0
100
はてなリモートインターンシップ2022 インフラ 講義資料
hatena
4
2.1k
ECS Service Connectでマイクロサービスを繋いでみた
xblood
0
520
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
7
6k
子育てとEMと転職と
_atsushisakai
1
330
フロントエンドで学んだことをデータ分析で使ってみた話
daichi_igarashi
0
160
「自律型開発組織」を目指すCTOの、試行錯誤の記録
ar_tama
1
200
スタック・オーバーフローに コントリビュートしはじめて良かったこと🐣
takuyakikuchi
1
120
量子コンピュータ時代のプログラミングセミナー / 20230119_Amplify_seminar _shift_optimization
fixstars
0
150
An Advanced Introduction to R
nicetak
0
1.6k
Amebaブログの会員画面システム刷新の道程
ryotasugawara
1
210
Featured
See All Featured
Practical Orchestrator
shlominoach
178
8.9k
The Language of Interfaces
destraynor
149
21k
Docker and Python
trallard
30
1.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
120
29k
Building an army of robots
kneath
302
40k
Bootstrapping a Software Product
garrettdimon
299
110k
The Illustrated Children's Guide to Kubernetes
chrisshort
22
42k
Git: the NoSQL Database
bkeepers
PRO
418
60k
Making Projects Easy
brettharned
102
4.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
500
130k
Fontdeck: Realign not Redesign
paulrobertlloyd
74
4.3k
The Pragmatic Product Professional
lauravandoore
21
3.4k
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