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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ゆるゆる
January 22, 2024
Programming
0
650
Docker bake(とCache)でCI/CDを改善する
ゆるゆる
January 22, 2024
Tweet
Share
More Decks by ゆるゆる
See All by ゆるゆる
改行には気をつけよう
sunyryr
0
74
WebAPI の設計
sunyryr
0
88
OpenAPI×LaravelでAPI開発を格段に便利にする方法
sunyryr
0
1.1k
OpenAPIことはじめ
sunyryr
0
150
server side swift - codable
sunyryr
0
260
iOSアプリだけじゃないSwift
sunyryr
0
160
Other Decks in Programming
See All in Programming
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
220
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
130
Grafana:建立系統全知視角的捷徑
blueswen
0
320
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
960
Implementation Patterns
denyspoltorak
0
280
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
3
190
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
980
SourceGeneratorのススメ
htkym
0
190
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
530
CSC307 Lecture 05
javiergs
PRO
0
490
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
230
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
The untapped power of vector embeddings
frankvandijk
1
1.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Faster Mobile Websites
deanohume
310
31k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
170
Fireside Chat
paigeccino
41
3.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
We Have a Design System, Now What?
morganepeng
54
8k
How to build a perfect <img>
jonoalderson
1
4.9k
How to Talk to Developers About Accessibility
jct
2
120
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
52
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 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠