forked from nicholasdille/container-slides
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerCon2020Live-HowToImproveYourImageBuildsUsingBuildKit.html
More file actions
171 lines (134 loc) · 7.5 KB
/
Copy pathDockerCon2020Live-HowToImproveYourImageBuildsUsingBuildKit.html
File metadata and controls
171 lines (134 loc) · 7.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<title>DockerCon</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/css/reveal.css"/>
<link rel="stylesheet" href="themes/theme2020.css" id="theme"/>
<link rel="stylesheet" href="themes/common.css" id="theme"/>
<link rel="stylesheet" href="themes/dockercon2020.css" id="theme"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@10.0.2/styles/rainbow.css"/>
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/css/print/pdf.css' : 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<script src="https://kit.fontawesome.com/979b781914.js" crossorigin="anonymous"></script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="" data-separator="^---$" data-separator-vertical="^--$"><textarea data-template="">
<!-- .slide: class="center" -->
<img src="images/NicholasDille.jpg" /> <!-- .element: style="width: 20%; float: left; border-radius: 8px; margin-right: 1em;" -->
# Improve Your Image Builds Using BuildKit
Nicholas Dille, Haufe.Group
<i class="fab fa-docker" style="width: 1.5em; text-align: center;"></i> Docker Captain & <i class="fab fa-windows" style="width: 1.5em; text-align: center;"></i> Microsoft MVP
<i class="fab fa-twitter" style="width: 1.5em; text-align: center;"></i> @nicholasdille
</textarea></section>
<section data-markdown="000_introduction/02_bio.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="" data-separator="^---$" data-separator-vertical="^--$"><textarea data-template="">
## Agenda
BuildKit?
Multi-stage builds
Build cache
Build secrets
SSH
Caching directories
Using BuildKit without Docker
Demo <i class="fas fa-greater-than" style="width: 1.5em; text-align: center;"></i> slides
</textarea></section>
<section data-markdown="110_ecosystem/buildkit/legacy.final.md" demos="false" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="020_advanced/020_multi_stage/slides.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="020_advanced/020_multi_stage/01_separation/separation.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="020_advanced/020_multi_stage/02_concurrency/concurrency.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="020_advanced/025_build_cache/classic.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="020_advanced/025_build_cache/buildkit.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="110_ecosystem/buildkit/secrets/slides.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="110_ecosystem/buildkit/ssh/slides.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="110_ecosystem/buildkit/cache/slides.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="110_ecosystem/buildkit/usage/overview.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="110_ecosystem/buildkit/usage/buildkit_dockercon.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="110_ecosystem/buildkit/transition.final.md" data-separator="^---$" data-separator-vertical="^--$"></section>
<section data-markdown="" data-separator="^---$" data-separator-vertical="^--$"><textarea data-template="">
## Summary
BuildKit brings new features to image building
Multi stage builds
Protect secrets using mounts and SSH forwarding
Improve performance by persisting cache directories
Works with and without Docker
### Thanks for joining!
<i class="fab fa-twitter" style="width: 1.5em; text-align: center;"></i> [Tibor Vass](https://twitter.com/tiborvass), [Tonis Tiigi](https://twitter.com/tonistiigi), [Akihiro Suda](https://twitter.com/_akihirosuda_)
(*see QR code for slides and demos*)  <!-- .element: style="float: right;" -->
(*see [here](https://github.com/nicholasdille/container-slides/releases/tag/2020-05-28) for slides sources*)
</textarea></section>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/js/reveal.min.js" type="application/javascript"></script>
<script>
Reveal.initialize({
//width: 1920,
//height: 1080,
//minScale: 1,
//maxScale: 1,
controls: true,
controlsTutorial: false,
controlsLayout: 'bottom-right',
progress: true,
slideNumber: false,
hash: true,
history: true,
keyboard: true,
overview: true,
center: false,
navigationMode: 'default',
shuffle: false,
fragments: true,
fragmentInURL: true,
embedded: false,
help: true,
showNotes: false,
autoPlayMedia: null,
preloadIframes: null,
defaultTiming: 120,
totalTime: 30,
minimumTimePerSlide: 0,
mouseWheel: false,
hideInactiveCursor: true,
hideCursorTime: 3000,
hideAddressBar: true,
previewLinks: false,
transition: 'convex',
transitionSpeed: 'default',
backgroundTransition: 'fade',
viewDistance: 3,
mobileViewDistance: 2,
parallaxBackgroundImage: '',
parallaxBackgroundSize: '',
allottedTime: 30 * 60 * 1000,
keyboard: {
// pause/resume time when Enter is pressed
13: () => {
ElapsedTimeBar.isPaused ? ElapsedTimeBar.resume() : ElapsedTimeBar.pause();
},
// reset timer when 'r' is pressed
82: () => {
ElapsedTimeBar.reset();
}
},
dependencies: [
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/plugin/zoom-js/zoom.js', async: true },
{ src: 'https://cdn.jsdelivr.net/npm/reveal.js@3.9.2/plugin/notes/notes.js' },
{ src: 'plugins/elapsed-time-bar-2699fc8/elapsed-time-bar.js'}
]
});
</script>
</body>
</html>