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イメージで CIのビルド時間を短くしてみる
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryosuke Horie
May 10, 2017
Programming
2
1.5k
軽量なDockerイメージで CIのビルド時間を短くしてみる
https://github.com/horie1024/WerckerAndroidSample
Ryosuke Horie
May 10, 2017
Tweet
Share
More Decks by Ryosuke Horie
See All by Ryosuke Horie
Androidifyから学ぶFirebase AI Logic SDKの使い方
horie1024
0
62
GitHub Copilot Use Cases at ZOZO
horie1024
1
2.6k
Miro × ZOZO ZOZOのMiro活用事例紹介
horie1024
0
2.8k
GitHub Copilotは開発者の生産性をどれだけ上げるのか?ZOZOでの全社導入とその効果 / How Much Does GitHub Copilot Improve Developer Productivity? The Company-wide Implementation and Its Effects at ZOZO
horie1024
36
29k
ZOZOTOWNにおける開発生産性向上に関する取り組み / Initiatives to Improve Development Productivity at ZOZOTOWN
horie1024
8
6.6k
How does the Relay connect Android app development and Design?
horie1024
2
2.2k
既存画面の Jetpack Composeでの書き換え: FAANSでの事例紹介 / Case study of rewriting existing screens with Jetpack Compose
horie1024
0
2k
スキルマップを作った話 / Create a skills map
horie1024
3
4.7k
Miroを使った開発効率向上のための取り組み / Using Miro Efforts to Improve Development Efficiency
horie1024
0
2.7k
Other Decks in Programming
See All in Programming
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
1k
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
220
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
1.2k
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
410
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
Windows on Ryzen and I
seosoft
0
250
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
250
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
250
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
500
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
380
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
170
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Google's AI Overviews - The New Search
badams
0
930
How to build a perfect <img>
jonoalderson
1
5.2k
[SF Ruby Conf 2025] Rails X
palkan
2
820
How to make the Groovebox
asonas
2
2k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.4k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
270
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
140
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
260
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Transcript
ܰྔͳDockerΠϝʔδͰ CIͷϏϧυ࣌ؒΛͯ͘͠ΈΔ Android Testing Bootcamp #6 Ryosuke Horie VASILY, inc.
ࣗݾհ @Horie1024 ▸ ງߐ ྄հ / Ryosuke Horie ▸ લ৬:
ϙʔλϧαΠτ Web / ΞϓϦ։ൃ ▸ 2લʹVASILYʹத్ೖࣾ ▸ AndroidΤϯδχΞ ▸ ࠷ۙiOSͷϓϩδΣΫτʹࢀՃ ▸ Twitter GitHub Qiita: @Horie1024
ൃද༰ ൃද༰ ▸ DockerʹରԠͨ͠CIαʔϏε͕࠷ۙଟ͍ ▸ CIαʔϏεDockerΠϝʔδΛωοτϫʔΫӽ͠ʹPull ▸ ͦͷͨΊΠϝʔδͷαΠζॏཁ ▸ ΠϝʔδΛܰྔԽ͢Δํ๏Λࢼߦࡨޡ
▸ ϕʔεΠϝʔδΛมߋɺAndroid SDKͷ༰ྔݮ ▸ Pullʹֻ͔Δ࣌ؒॖ -> Ϗϧυ͕࣌ؒ͘ͳΔͷͰʁ
DockerʹରԠͨ͠CIαʔϏε ࠷ۙͷCIαʔϏε ▸ ϏϧυڥΛDockerΠϝʔδͰ༻ҙͰ͖Δ ▸ Wercker ▸ Drone ▸ CircleCI
▸ Travis CI
DockerʹରԠͨ͠CIαʔϏε DockerΠϝʔδͷཧ ▸ ϨδετϦαʔϏεΛར༻ ▸ Docker Hub ▸ Google Container
Registry ▸ Amazon ECR ▸ QUAY.io Amazon ECR
DockerʹରԠͨ͠CIαʔϏε DockerΠϝʔδͷPull ▸ ΠϝʔδΛϨδετϦ͔ΒPull ▸ Ϗϧυ࣌ؒʹؚ·ΕΔ ▸ Πϯλʔωοτܦ༝ ▸ ΠϝʔδͷαΠζΛແࢹͰ͖ͳ͍
Amazon ECR
ΠϝʔδͷܰྔԽ ΠϝʔδαΠζͷݮ ▸ ΠϝʔδΛPull͢Δ࣌ؒͷॖ ▸ Ϗϧυ࣌ؒͷॖʹܨ͕Δ ▸ ͍ܰͷྑ͍
ΠϝʔδͷܰྔԽ Ͳ͏ܰྔԽ͢Δͷ͔ʁ ▸ ܰྔͳOSΛϕʔεΠϝʔδʹ͢Δ ▸ ෆཁͳύοέʔδΛΠϯετʔϧ͠ͳ͍
ΠϝʔδͷܰྔԽ Ͳ͏ܰྔԽ͢Δͷ͔ʁ ▸ ܰྔͳOSΛϕʔεΠϝʔδʹ͢Δ ▸ ෆཁͳύοέʔδΛΠϯετʔϧ͠ͳ͍
ΠϝʔδͷܰྔԽ Alpine Linux ▸ ඇৗʹܰྔͳLinux distribution ▸ ެࣜͷDockerΠϝʔδͰ࠾༻ ▸ Alpine
LinuxΛϕʔεͷΠϝʔδʹ ▸ ΠϝʔδαΠζͷݮʹޮՌେ
Πϝʔδͷ࡞ ૉͷΠϝʔδαΠζൺֱ IMAGE SIZE ubuntu: 16.04 117 MB alpine: 3.5
3.99 MB ▸ ubuntuͱൺֱͯ͠ѹతʹ͍ܰ ▸ ͜ͷαΠζࠩɺΠϝʔδ͕ܰ͘ͳΔͣ
ΠϝʔδͷܰྔԽ Android SDKΛμϯϩʔυͨ͠ঢ়ଶ IMAGE SIZE ubuntu: 16.04 2.05 GB alpine:
3.5 1.58 GB ▸ android-sdk_r24.4.1-linux͕ϕʔε ▸ android sdk update ▸ android-25, build-tools-25.0.3 ▸ extra-google-m2repository ▸ extra-android-m2repository ▸ 500 MBͷࠩ ▸ ͦͦAndroid SDK͕ॏ͗͢Ͱ
ΠϝʔδͷܰྔԽ Docker Hub্Ͱͷൺֱ ▸ Docker HubʹΠϝʔδΛ্͛ͨঢ়ଶ ▸ ѹॖޙͷΠϝʔδαΠζ྆ํ 1 GB
▸ ͋ΕɺαΠζ͕มΘΒͳ͍ɾɾʁ
Ͳ͏͠Α͏
ΠϝʔδͷܰྔԽ WerckerͰPullʹֻ͔Δ࣌ؒͷൺֱ ▸ औΓ͑ͣൺֱ ▸ 5ճฏۉ ▸ WerckerͷΩϟογϡ͕ޮ͍͍ͯͳ͍ঢ়ଶ ▸ alpineϕʔεͷΠϝʔδͷํ͕͍ʂ
IMAGE TIME ubuntu: 16.04 54.2 s alpine: 3.5 46.8 s
ΠϝʔδͷܰྔԽ Ͳ͏ܰྔԽ͢Δͷ͔ʁ ▸ ܰྔͳOSΛϕʔεΠϝʔδʹ͢Δ ▸ ෆཁͳύοέʔδΛΠϯετʔϧ͠ͳ͍
ΠϝʔδͷܰྔԽ Ͳ͏ܰྔԽ͢Δͷ͔ʁ ▸ ܰྔͳOSΛϕʔεΠϝʔδʹ͢Δ ▸ ෆཁͳύοέʔδΛΠϯετʔϧ͠ͳ͍
ΠϝʔδͷܰྔԽ Android SDKͷ༰ྔݮ ▸ ࠷ۙϛχϚϜͳSDK͕μϯϩʔυͰ͖Δ ▸ android-sdk_r24.4.1-linux 570 MB ▸
sdk-tools-linux-3859397 160 MB
ΠϝʔδͷܰྔԽ Android SDKΛμϯϩʔυͨ͠ঢ়ଶ IMAGE SIZE ubuntu: 16.04 1.53 GB alpine:
3.5 1.04 GB ▸ sdk-tools-linux-3859397͕ϕʔε ▸ androidίϚϯυ͕deprecated ▸ sdkmanagerΛ༻ ▸ android-25, build-tools-25.0.3 ▸ extra-google-m2repository ▸ extra-android-m2repository ▸ 500 MBͷࠩͳͷมΘΒͳ͍
ΠϝʔδͷܰྔԽ WerckerͰPullʹֻ͔Δ࣌ؒͷൺֱ ▸ 5ճฏۉ ▸ ΠϝʔδαΠζͷܰྔԽͰ্ ▸ 10ඵҎ্͘ͳͬͨ IMAGE TIME
ubuntu: 16.04 39.4 s alpine: 3.5 30.2 s
ΠϝʔδͷܰྔԽ Alpine LinuxϕʔεͷΠϝʔδ͕ྑͦ͞͏ ▸ ࠷Πϝʔδ͕ܰྔ ▸ Pullʹֻ͔Δ͍࣌ؒ ▸ ͔͠͠ ▸
AndroidΛϏϧυͰ͖͍ͯͳ͍(5/10 18:00ݱࡏ)
ΠϝʔδͷܰྔԽ Alpine LinuxͰͷቕΓ ▸ sdkmanager͕࣮ߦͰ͖ͳ͍ ▸ Alpine LinuxͰbash͕ೖ͍ͬͯͳ͍ͷ͕ݪҼ ▸ aapt͕࣮ߦͰ͖ͳ͍
▸ Cannot run program "aapt": error=2, No such file or directory ▸ glibc͕ೖ͍ͬͯͳ͍ɻAlpineͰglibcΛೖΕΔͷʹቕ·Δɻ ▸ lib.so.1͕ແ͍ͱౖΒΕΔɻ ▸ aapt32bit൛ͷglibcͰͳ͚ΕͳΒͳ͍ ▸ 32bit൛ͷglibcΛΠϯετʔϧ <- ࠓ͜͜Ͱ ٧·Δ
·ͱΊ
·ͱΊ ▸ DockerΠϝʔδͷܰྔԽେ ▸ ϕʔεΠϝʔδͷมߋɺAndroid SDKͷαΠζݮޮՌత ▸ Alpine Linuxͷߏඞཁ࠷খݶͷͨΊቕ·ΔՄೳੑ͋Γ ▸
DebianɺArch LinuxͰࢼ͢ͱ͋·Γቕ·ΒͣʹܰྔԽͰ͖Δ͔͠Εͳ͍ ▸ ·ͣAndroid SDKͷݮ͔ΒखΛ͚Δͷ͕ྑͦ͞͏ ▸ androidίϚϯυ͕deprecatedʹͳͬͨͷྑ͍ػձ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
appendix ʲิʳWerckerͷΠϝʔδΩϟογϡ ▸ Werckerͷ߹ΠϝʔδͷΩϟογϡΛউखʹͯ͘͠ΕΔ ▸ Ωϟογϡ͕͋Δ߹ΠϝʔδͷPullʹɺ1~2ඵ͔͔͔͠Βͳ͍ ▸ Ωϟογϡ͕ແ͍߹ͷϏϧυ࣌ؒͷॖʹΠϝʔδͷܰྔԽޮՌ͕͋Δ