Slide 1

Slide 1 text

AngularJSΛ௨ͯ͠ Dockerͱ৮Ε͋ͬͨ at Angular meetup #3

Slide 2

Slide 2 text

• pastelInc • ͓࢓ࣄ͸PHP, JavaScript • ࠓ೔͸Χϝϥ୲౰

Slide 3

Slide 3 text

DockerΛ஌Βͳ͍ͷʂʁ

Slide 4

Slide 4 text

Docker͸ԿΛղܾ͢Δͷ͔

Slide 5

Slide 5 text

σϓϩΠͷ໰୊ • σϓϩΠͨ͠Βಈ͔ͳ͔ͬͨ • σϓϩΠ؀ڥΛ͙͢༻ҙͰ͖ͳ͔ͬͨ • αʔό͝ͱʹҧ͏ϥΠϒϥϦɺόʔδϣϯ • ϓϩϏδϣχϯάͨ͘͠ͳ͍ • σϓϩΠ؀ڥ࠶ߏஙͰྦ

Slide 6

Slide 6 text

ٻΊͨͷ͸ ΋ͬͱखܰͳσϓϩΠ؀ڥ

Slide 7

Slide 7 text

Docker • ࠶ݱੑͷ͋ΔΠϯϑϥج൫Λਝ଎ʹߏங • “ίϯςφ”ಉ࢜͸ޓ͍ʹִ཭ • Φʔϓϯιʔε • DockerfileͰΠϯϑϥΛίʔυͱͯ͠هड़ • ΞϓϦͷݴޠʹدΒͣɺಉ͡΍ΓํͰσϓϩΠ

Slide 8

Slide 8 text

VMͱίϯςφͷҧ͍

Slide 9

Slide 9 text

Docker͸”ίϯςφ”Λѻ͏ ϓϥοτϑΥʔϜ

Slide 10

Slide 10 text

AngularJSΞϓϦΛ࡞ͬͯ Docker্Ͱಈ͔ͯ͠ΈΑ͏ʂ

Slide 11

Slide 11 text

• https://github.com/angular/material-start

Slide 12

Slide 12 text

ΞϓϦέʔγϣϯಈ࡞؀ڥ • Node.js • 8080൪ϙʔτΛ࢖༻ $ node -v v0.12.5 $ npm -v 2.11.3

Slide 13

Slide 13 text

ίϯςφͷىಈ • docker run <Φϓγϣϯ> <Πϝʔδ໊:λά> <ίϚϯυ> <Ҿ਺> • -i ͸ίϯςφͰͷඪ४ೖྗΛՄೳʹ͢Δ • -t ͸ٖࣅλʔϛφϧΛల։͢Δ $ docker run -i -t node bash root@d7d20a8e7bb7:/# node -v v5.0.0 root@d7d20a8e7bb7:/# npm -v 3.3.6

Slide 14

Slide 14 text

ίϯςφͷىಈ • docker run <Φϓγϣϯ> <Πϝʔδ໊:λά> <ίϚϯυ> <Ҿ਺> • -v ͸ϗετͷσΟϨΫτϦΛίϯςφʹϚ΢ϯτ͢Δ • -p ͸ϙʔτϑΥΞϦϯά͢Δ $ docker run -v `pwd`:/tmp -p 8080:8080 node ls -l total 60 drwxr-xr-x 2 root root 4096 Nov 10 00:43 bin drwxr-xr-x 2 root root 4096 Aug 26 16:31 boot drwxr-xr-x 5 root root 360 Nov 22 02:58 dev drwxr-xr-x 61 root root 4096 Nov 22 02:58 etc drwxr-xr-x 2 root root 4096 Aug 26 16:31 home drwxr-xr-x 12 root root 4096 Nov 10 00:43 lib

Slide 15

Slide 15 text

ίϯςφͷఀࢭ • Ctrl + P + QͰίϯςφΛఀࢭͤͣʹ
 ݩͷλʔϛφϧʹ໭Δʢσλονʣ • ࠶౓Ξλον root@d7d20a8e7bb7:/# exit $ $ docker attach d7d20a8e7bb7 root@d7d20a8e7bb7:/#

Slide 16

Slide 16 text

• ίϯςφΛىಈͯ͠ΞϓϦΛ࣮ߦ $ cd material-start $ docker run -it -v `pwd`:/tmp -p 8080:8080 node:0.12.5 bash root@d7d20a8e7bb7:/# node -v v0.12.5 root@d7d20a8e7bb7:/# npm -v 2.11.3 root@d7d20a8e7bb7:/# cd /tmp root@d7d20a8e7bb7:/tmp# npm start

Slide 17

Slide 17 text

Dockerfile • Dockerίϯςφͷߏ੒Λ·ͱΊͯهड़ • docker buildͰΠϝʔδͷ࡞੒

Slide 18

Slide 18 text

DockerΠϝʔδ • Πϝʔδ͸ϨΠϠͷॏ ͳΓ • ϨΠϠͱ͸docker run ͔ͯ͠ΒͷϑΝΠϧࠩ ෼ͷ͜ͱ

Slide 19

Slide 19 text

• ΞϓϦ࣮ߦͷͨΊͷDockerfileΛ࡞੒ $ touch Dockerfile $ echo “FROM node:0.12.5-onbuild” > Dockerfile $ cat Dockerfile FROM node:0.12.5-onbuild

Slide 20

Slide 20 text

Language Stack • Docker Hubʹ͸֤ݴޠͷެࣜϦϙδτϦ͕ଘ ࡏ͢Δ • λάʹΑΔόʔδϣϯͷࢦఆ͕Մೳ • ONBUILDσΟϨΫςΟϒΛؚΜͩΠϝʔδ͕ ͋Δ

Slide 21

Slide 21 text

FROM node:0.12.7 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ONBUILD COPY package.json /usr/src/app/ ONBUILD RUN npm install ONBUILD COPY . /usr/src/app CMD [ "npm", "start" ]

Slide 22

Slide 22 text

Πϝʔδ࡞੒ • docker build <Φϓγϣϯ> • -t ͸Πϝʔδͷ<໊લ:λά>ΛܾΊΔ $ docker build -t pastelinc/material-start .

Slide 23

Slide 23 text

Πϝʔδදࣔ • docker images <Φϓγϣϯ> $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE pastelinc/material-start latest 820019b78a27 15 minutes ago 1.042 GB

Slide 24

Slide 24 text

• DockerfileΛ࢖ͬͯΠϝʔδΛ࡞੒ • Πϝʔδ͔ΒίϯςφΛىಈ $ docker build -t pastelinc/material-start . $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE pastelinc/material-start latest 820019b78a27 15 minutes ago 1.042 GB $ docker run -d -p 3000:8080 pastelinc/material-start

Slide 25

Slide 25 text

·ͱΊ • Docker͸σϓϩΠͷ՝୊Λղܾͯ͘͠ΕΔ • DockerfileΛ༻ҙ͢Δͱ࣮ߦ؀ڥΛ͙͢ʹ࡞ΕΔ • ೰·ͣखܰʹΠϯϑϥ؀ڥΛͲ͜Ͱ΋ߏஙͰ͖ ָ͍ͯ͠ʂ • ݱࡏϓϩμΫγϣϯͰͷ࠾༻͸·ͩগͳ͍