Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
MicroServices and sbt-native-packager
s_edward
October 24, 2018
Programming
0
270
MicroServices and sbt-native-packager
s_edward
October 24, 2018
Tweet
Share
More Decks by s_edward
See All by s_edward
ScalaとGraalVM
takesection
1
180
AWS VPC
takesection
0
30
ThreadPoolの使い分け
takesection
1
85
FutureとThreadPool
takesection
3
450
First Steps in Scala
takesection
1
220
Future
takesection
2
390
Introduction to the akka streams
takesection
1
48
AWS ECS と Fargate
takesection
0
180
greengrass
takesection
0
310
Other Decks in Programming
See All in Programming
OSS貢献を気軽にしたい Let's Go Talk #1
yuyaabo
2
230
Automating Gradle benchmarks at N26
ubiratansoares
PRO
1
140
企業内スモールデータでのデータ解析
hamage9
0
870
サーバーレスパターンから学ぶデータ分析基盤構築 / devio2022
kasacchiful
0
480
Google I/O 2022 Android関連概要 / Google I/O 2022 Android summary
phicdy
0
370
ふんわり理解するcontext
rukiadia
1
180
SGGとは
inoue2002
0
430
Rに管理されてみる
kazutan
0
250
20220706_Google Apps Scriptを実演で学ぶ~ GAS × Slack ~
apachan
2
620
ちょっとつよい足トラ
logilabo
0
350
パスワードに関する最近の動向
kenchan0130
1
320
Getting Started With Data Structures
adoranwodo
1
260
Featured
See All Featured
Building Your Own Lightsaber
phodgson
95
4.7k
The Brand Is Dead. Long Live the Brand.
mthomps
46
2.7k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
The Power of CSS Pseudo Elements
geoffreycrofte
47
4k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
Git: the NoSQL Database
bkeepers
PRO
415
59k
KATA
mclloyd
7
8.8k
Embracing the Ebb and Flow
colly
73
3.4k
Keith and Marios Guide to Fast Websites
keithpitt
404
21k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
10k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
15k
Transcript
ϚΠΫϩαʔϏεͱ TCUOBUJWFQBDLBHFS 4IJHFLJ4IPKJ
ࣗݾհ w ΞʔΩςΫτʢϑϦʔϥϯεʣ w 5XJUUFS!UBLFTFDUJPO w -JOLFE*OIUUQTXXXMJOLFEJODPNJOUBLFTFDUJPO
ϚΠΫϩαʔϏε Πϕϯτ ιʔε Πϕϯτ ιʔε 4FSWJDF" 4FSWJDF# #PVOEFE$POUFYU #PVOEFE$POUFYU
r3FBDUJWF.JDSPTZTUFNT l%PO`U#VJME.JDSPMJUITz
Ϟδϡʔϧͷߏ ඪ४ϥΠϒϥϦ ϥΠϒϥϦ "LLB4USFBNT υϝΠϯϩδοΫ ୯Ұͷ࣮ߦϞ δϡʔϧ ෳͷ࣮ߦϞ δϡʔϧ ෳͷ࣮ߦϞ
δϡʔϧ -BNCEB
όΠφϦͷཧ w ඪ४ϥΠϒϥϦ04ʹόϯυϧ͞Ε͍ͯͨΓɺ+BWB࣮ߦ ڥ4DBMBϥΠϒϥϦͱ࣮ͯ͠ߦڥʹଘࡏ w "LLB4USFBNTͷϥΠϒϥϦ.BWFO$FOUSBM #JOUSBZKDFOUFS͔Βऔಘ࣮ͯ͠ߦϞδϡʔϧʹόϯυϧ w υϝΠϯϩδοΫಠࣗͷϥΠϒϥϦɺϓϥΠϕʔτϦ ϙδτϦɺ/FYVT"SUJGBDUPSZͷΑ͏ͳΠϯϋεϦϙ
δτϦΛར༻࣮ͯ͠ߦϞδϡʔϧʹόϯυϧ
ىಈํ๏
&$4ͷ߹ w &$4'BSHBUFͷ%PDLFS$POUBJOFS w %PDLFSpMF͕ඞཁ w '30.ʹެࣜͷPQFOKELΛ͏ w ΞϓϦέʔγϣϯͷىಈʹγΣϧεΫϦϓτ͕ඞཁ
&$ͷ߹ w &$ͷΑ͏ͳ-JOVY7. w +7.ΛΠϯετʔϧ 0QFO+%,Ҏ߱ w αʔϏεͱͯ͠ىಈͤ͞ΔͨΊͷγΣϧεΫϦϓτ͕ඞཁ w
4ZTUFN7 TZTUFNE 6QTUBSU ৄ͍͠৬ਓ͞Μʹ͓ئ͍͢Δʁ దʹ͙͙ͬͯεΫϦϓτॻ͍ͯɺ҆શ͔Ͳ͏͔Α͘Θ ͔Βͳ͍ɻ
TCUOBUJWFQBDLBHFS w TCUϓϥάΠϯͷҰͭ w "NB[PO-JOVYͷZVNΛͬͯΠϯετʔϧ͢Δ߹ SQN 6CVOUV%FCJBOEFC w &$4
'BSHBUFɺ%PDLFSΠϝʔδ
QMVHJOTTCU addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6") addSbtPlugin(“com.typesafe.sbt" % “sbt-native-packager" %
“1.3.5")
%PDLFS lazy val root = (project in file(".")) .enablePlugins(JavaAppPackaging, AshScriptPlugin,
DockerPlugin) .settings( name := "example", version := "0.1.0-SNAPSHOT", scalaVersion := "2.12.6", ).settings( dockerBaseImage := "openjdk:8-jre-alpine", dockerExposedPorts := Seq(8080), mainClass in assembly := Some("com.example.HelloWorld") )
EPDLFSTUBHF w UBSHFUEPDLFSTUBHFPQUʹ%PDLFSpMF͕ੜ͞ΕΔ w UBSHFUEPDLFSTUBHFPQUEPDLFSCJOʹΞϓϦέʔγϣ ϯΛىಈ͢ΔͨΊͷγΣϧεΫϦϓτͱόονϑΝΠϧ͕ ੜ͞ΕΔ w UBSHFUEPDLFSTUBHFPQUEPDLFSMJCʹΞϓϦέʔγϣ ϯͷKBSͱґଘϥΠϒϥϦͷKBS͕ஔ͞ΕΔ
FROM openjdk:8-jre-alpine WORKDIR /opt/docker ADD --chown=daemon:daemon opt /opt EXPOSE 8080
USER daemon ENTRYPOINT ["/opt/docker/bin/example"] CMD []
EPDLFSQVCMJTI-PDBM w %PDLFSpMF͔Β%PDLFSΠϝʔδ͕Ϗϧυ͞ΕΔɻΠϝʔ δϩʔΧϧʹొ͞ΕΔ w Πϝʔδͷ3&104*503:ɺΞϓϦέʔγϣϯ໊ ྫ FYBNQMF ɺ5"(ɺΞϓϦέʔγϣϯͷόʔδϣϯ ྫ
4/"14)05
&$3ͷొ w %PDLFS)VC&$3ͷ%PDLFSϨδετϦʹΠϝʔδΛొ w EPDLFSMPHJOͰ%PDLFSϨδετϦʹϩάΠϯ w EPDLFSUBHͰϏϧυͨ͠Πϝʔδʹ%PDLFSϨδετϦͷϦϙδ τϦ໊λάΛઃఆ EPDLFSUBHFYBNQMF4/"14)05FYBNQMFFYBNQMFMBUFTU
w EPDLFSQVTIͰΠϝʔδΛొ EPDLFSQVTIFYBNQMFFYBNQMFMBUFTU
31. lazy val root = (project in file(".")) .settings( name
:= "example", version := "0.1.0-SNAPSHOT", scalaVersion := "2.12.6" ) .enablePlugins(JavaServerAppPackaging, UpstartPlugin, RpmPlugin) .settings( rpmVendor := "Example", rpmLicense := Some("MIT") )
w SQNʹύοέʔδϯά͢ΔͨΊʹɺSQNCVJMEͷί Ϛϯυ͕ඞཁɻ%PDLFSΛͬͯύοέʔδϯά͢Δͷ͕ ָ EPDLFSSVOJUSNa WAQXEATSDa W)0.&JWZSPPUJWZa QJHVNFSHSPVQEPDLFSTCUEFCJBOQMVTOCJOTI BQUVQEBUFBQUJOTUBMMBMJFOZ
DETSD TCU
SQNTUBHF w SQNTUBHFCVJMETCUͷΦϓγϣϯ͕ͲͷΑ͏ʹ ө͞ΕΔ͔Λ֬ೝ͍ͨ͠ͱ͖ʹ༻
w UBSHFUSQN41&$4ʹΞϓϦέʔγϣϯͷ41&$ϑΝΠϧ ͕ੜ͞ΕΔ w UBSHFUSQNUNQCVJMESPPUVTSTIBSF<OBNF>CJOʹγ ΣϧεΫϦϓτ͕ੜ͞ΕΔ w UBSHFUSQNUNQCVJMESPPUVTSTIBSF<OBNF>MJCʹΞϓ ϦέʔγϣϯͷKBSͱґଘϥΠϒϥϦͷKBS͕ஔ͞ΕΔ w
UBSHFUSQNUNQCVJMESPPUFUDʹىಈγΣϧεΫϦϓτ ΦϓγϣϯઃఆͷϑΝΠϧ͕ੜ͞ΕΔ w UBSHFUSQNUNQCVJMESPPUWBS͕ੜ͞ΕΔ
SQNQBDLBHF#JO w UBSHFUSQN31.4<BSDIUZQF>ʹSQNϑΝΠϧ͕ੜ ͞ΕΔ w ੜ͞ΕͨSQNϑΝΠϧͷΠϯετʔϧ ZVNJOTUBMMZ<SQNϑΝΠϧύε>
ࢀߟ w IUUQTXXXMJHIUCFOEDPNCMPHSFBDUJWF NJDSPTZTUFNTUIFFWPMVUJPOPGNJDSPTFSWJDFTBU TDBMFGSFFPSFJMMZSFQPSUCZKPOBTCPOFS w IUUQTHJUIVCDPN1JHVNFS(SPVQ w IUUQTHJUIVCDPNTCUTCUOBUJWFQBDLBHFS w
IUUQTHJUIVCDPNTCUTCUBTTFNCMZ
·ͱΊ w TCUOBUJWFQBDLBHFΛͬͯΞϓϦέʔγϣϯΛύοέʔ δϯά͢Δͱɺ%PDLFS 31. %&#ͷସ͕͑ίʔυ ͷमਖ਼ͳ͠ʹCVJMETCUͷগ͠ͷมߋͰͰ͖Δ w %PDLFSpMF31.ͷ41&$ϑΝΠϧɺىಈͷͨΊͷγΣ ϧεΫϦϓτͷ͕ࣝͳͯ͘%PDLFSΠϝʔδ31.
ʹύοέʔδϯάͰ͖Δ w +7.ʹΘͨ͢ΦϓγϣϯͷઃఆɺγΣϧεΫϦϓτ ͷΧελϚΠζΛߦ͏͜ͱ͕Ͱ͖Δ