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
Docker bake(とCache)でCI/CDを改善する
Search
ゆるゆる
January 22, 2024
Programming
0
250
Docker bake(とCache)でCI/CDを改善する
ゆるゆる
January 22, 2024
Tweet
Share
More Decks by ゆるゆる
See All by ゆるゆる
改行には気をつけよう
sunyryr
0
25
WebAPI の設計
sunyryr
0
82
OpenAPI×LaravelでAPI開発を格段に便利にする方法
sunyryr
0
960
OpenAPIことはじめ
sunyryr
0
110
server side swift - codable
sunyryr
0
220
iOSアプリだけじゃないSwift
sunyryr
0
130
Other Decks in Programming
See All in Programming
僕がつくった48個のWebサービス達
yusukebe
20
17k
Content Security Policy入門 セキュリティ設定と 違反レポートのはじめ方 / Introduction to Content Security Policy Getting Started with Security Configuration and Violation Reporting
uskey512
1
490
CSC509 Lecture 11
javiergs
PRO
0
180
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
540
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.3k
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.1k
C++でシェーダを書く
fadis
6
4k
Dev ContainersとGitHub Codespacesの素敵な関係
ymd65536
1
140
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
200
Jakarta EE meets AI
ivargrimstad
0
210
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
2
240
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
280
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
180
21k
Agile that works and the tools we love
rasmusluckow
327
21k
Designing the Hi-DPI Web
ddemaree
280
34k
Facilitating Awesome Meetings
lara
49
6.1k
A designer walks into a library…
pauljervisheath
202
24k
Rails Girls Zürich Keynote
gr2m
93
13k
Producing Creativity
orderedlist
PRO
341
39k
Raft: Consensus for Rubyists
vanstee
136
6.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Music & Morning Musume
bryan
46
6.2k
Scaling GitHub
holman
458
140k
Transcript
%PDLFSCBLFʢͱ$BDIFʣͰ$*$%Λվળ͢Δ 304$"'&%FW0QT Taiyo Minagawa
2 ࣗݾհ • 5BJZP.JOBHBXBΏΔΏΔ • גࣜձࣾΏΊΈ • #BDLFOE&OHJOFFSࣗ *OGSB&OHJOFFS •
झຯ ◦ υϥΠϒ ◦ ཱྀߦ ◦ ϒϧʔΞʔΧΠϒ TVOZSZS TVO@ZSZS
3 ࣍ %PDLFSCBLFͷհ ࣮ࡍͷվળͷ༷ࢠ
4 %PDLFSCBLFͷհ ίϯςφԽͯ͠·͔͢ʁ
5 %PDLFSCBLFͷհ IUUQTHJUIVCDPNEPDLFSCVJMEYCMPCNBTUFSEPDTSFGFSFODFCVJMEY@CBLFNE
6 CBLFͱ • ߴϨϕϧͷϏϧυΦʔέετϨʔγϣϯ • શͯͷΠϝʔδΛ·ͱΊͯߏஙͰ͖Δ • %PDLFSϏϧυͷλεΫϥϯφʔͱͯ͠ଊ͑ΒΕΔ • #VJME,JUͷฒྻԽΛ࠷େݶʹ׆༻͢ΔͨΊͷπʔϧ
ෳͷΠϝʔδΛϏϧυ͢Δ࣌ʹ͏ͱྑ͍πʔϧ
7 CBLFͷϝϦοτ • ࠷దͳϏϧυॱΛܭࢉͯ͠ϏϧυΛߦͬͯ͘ΕΔ • Ϗϧυͷॲཧޮ্͕͕Δ ϨΠϠʔ̍ ϨΠϠʔ̎ ϨΠϠʔ̏ λʔήοτ"
ϨΠϠʔ̍ ϨΠϠʔ̎ λʔήοτ# ϨΠϠʔ̐ ϨΠϠʔ̍ ϨΠϠʔ̎ ϨΠϠʔ̏ λʔήοτ" λʔήοτ# ϨΠϠʔ̐ ˞͜ͷॏෳআ CVJME,JUͷػೳ
8 CBLFͷϝϦοτ • ϏϧυઃఆΛߏతʹఆٛͰ͖Δ • )$- )BTIJ$PSQDPOGJHVSBUJPOMBOHVBHF ͕͑Δ https://github.com/moby/buildkit/blob/master/docker-bake.hcl#L118-L148 variable
"GO_VERSION" { default = null } ม function "bindir" { params = [defaultdir] result = DESTDIR != "" ? DESTDIR : "./bin/${defaultdir}" } ؔ name = "lint-${buildtags.name}" จࣈͷຒΊࠐΈʢςϯϓϨʔτϦςϥϧʣ
9 CBLFΛطʹ༻͍ͯ͠ΔϓϩδΣΫτ • NPCZNPCZ • NPCZCVJMELJU • EPDLFSCVJMEY • EVOHMBTGSBOLFOQIQ
• KFOLJOTDJEPDLFS
10 ࣄྫհ
11 ͱ͋ΔϓϩδΣΫτͷ • &$4Ͱ "1*αʔόʔ͕ߏங͞Ε͍ͯΔ • ݕূ༻ؚΊݸͷΠϝʔδΛϏϧυ͢Δඞཁ͕͋Δ • $*$% +FOLJOTΛར༻͍ͯͨ͠
◦ ڥ $*͝ͱʹϦηοτ͞Εͳ͍ ◦ উखʹ %PDLFSͷ MBZFSDBDIF͕ޮ͘ͷϝϦοτͱݴ͑ͳ͘ͳ͍ʢͳ͍ʣ • σϓϩΠઌ͕ΊͪΌͪ͘Ό͋Δʂ • ຊ൪ڥͷσϓϩΠࣗಈԽ͍ͯͯ͠ɺόʔδϣϯλάΛ͚Δʢ͜ΕϫʔΫϑϩ ʔΛ༻ҙ͍ͯ͠·͢ʣ͚ͩͰσϓϩΠ͞ΕΔ • (JU)VC"DUJPOTʹҠߦ͢Δ
12 ํ • $*$%ͷྲྀΕ͋·Γ͍͡Βͳ͍ • (JU)VC"DUJPOTຖճڥ͕Ϧηοτ͞ΕΔͷͰɺผͷॴʹ MBZFS DBDIF Λอଘ͢Δ ◦
ࠓճ 4Λબͼ·ͨ͠ ◦ ͜ͷΩϟογϡͷهड़͕ΊͪΌͪ͘Ό͍ͷͰ CBLFͷԸܙ͕ग़͖ͯ·͢
13 +FOLJOT࣌ͷϏϧυ࣌ؒ • UYMBSHFʢDPSF(#ʣ • ʙ͘Β͍ ◦ " # ฒྻͰ͢
• গͳ͘ͱ :BSOͷΩϟογϡ͕ޮͣ͘ Ͱ͕͢ɺͳ͔ͥ ճಉ͡Α͏ͳ࣌ؒ ͔͔͍ͬͯΔ ビルドA ビルドB 2回目 3回目 1回目
14 (JU)VC"DUJPOTҠߦ CBLF DBDIFCBDLFOE • LT্ͷ 1PEʢ$PSF(#ʣ • ฒྻॲཧ CBLFʹͤΔ
15 ҠߦޙͷϏϧυ࣌ؒ • ͢Έ·ͤΜӕͰ͢ɺͪ͜Β͕ҰൠతͳϏϧυ࣌ؒͰ͢ • ҰൠతͳΞϓϦέʔγϣϯͷϏϧυఔͰ CBLFʹΑΔΞοϓͷԸܙগͳ͍ ◦ Ωϟογϡ͕ͨͬͨ࣌ͷݟҧ͑Δ΄Ͳʹ্ •
ฒྻԽʹΑͬͯϦιʔεར༻ͷޮ͔ͳΓ্͕ͬͨΑ͏ʹݟ͑Δ ◦ $PSF $PSF ͰಉͷϏϧυ࣌ؒ
16 ·ͱΊ • %PDLFSCBLFΛ͏ͱϏϧυઃఆ͕ཧ͘͢͠ͳΔͷͰΤϯδχΞʹخ͍͠ʂ • $BDIFTUPSBHFCBDLFOEΛઃఆ͢Δͱ $*ͷ͕վળ͢ΔͷͰ։ൃޮ61ɾ ίετ%08/͕خ͍͠ʂ ◦ ϏϧυίϚϯυ͕͘ͳΔ
CBLFͰղܾ
17 ༨ஊ r ։ൃɾςετڥΊͬͪΌ͋Δ
18 ༨ஊ r ։ൃɾςετڥΊͬͪΌ͋Δ
19 ࠾༻ใ
20 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠