Slide 1

Slide 1 text

drone.ioΛ࢖ͬͯ docker build & pushࣗಈԽ Oct. 14, 2015 / Docker LT @jsoizo

Slide 2

Slide 2 text

whoami • ໊લ : @jsoizo / Jun Sakamoto • ݴޠ : JavaScriptͱScalaΛগʑ • ࢓ࣄ : ޿ࠂωοτϫʔΫͷ։ൃ • ഑৴αʔό౳Ͱ70୆΄Ͳͷίϯςφ͕ৗ࣌ىಈ on Prod • ॴଐ :

Slide 3

Slide 3 text

·͍ʹͪ Docker࢖ͬͯΔͱ…

Slide 4

Slide 4 text

Πϝʔδͷ build & push ͔ͬͨΔ͍໰୊

Slide 5

Slide 5 text

Πϝʔδͷ build & push ͔ͬͨΔ͍໰୊ 4DBMBίϯύΠϧ஗͍

Slide 6

Slide 6 text

Πϝʔδͷ build & push ͔ͬͨΔ͍໰୊ 4DBMBίϯύΠϧ஗͍ ΄΅खಈ(*U'MPX

Slide 7

Slide 7 text

Πϝʔδͷ build & push ͔ͬͨΔ͍໰୊ 4DBMBίϯύΠϧ஗͍ ΠϝʔδQVTIͷ౓ʹ ଠฏ༸ͷ޲͜͏ͱ௨৴ ΄΅खಈ(*U'MPX

Slide 8

Slide 8 text

ͱ͍͏͜ͱͰ ࣗಈԽ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

• goݴޠͰॻ͔ΕͨCI (ݱߦόʔδϣϯ͸0.3) • OSS൛ https://github.com/drone/drone • δϣϒຖʹDocker ίϯςφΛ্ཱ࣮ͪ͛ͯߦ • GitHub, GitLabͷhook • gitϦϙδτϦ௚Լͷyamlʹ࣮ߦ಺༰Λهड़ • irc, Slack, Hipchat౳΁ͷ௨஌(by Plugin)

Slide 11

Slide 11 text

ಈ࡞ϑϩʔ ίϯςφ ᶄ webhook ᶆ docker run ᶅ read drone.yml ᶉ docker push ᶇ test ᶈ docker builld ᶃ git push

Slide 12

Slide 12 text

΍ͬͯΔ͜ͱ͸ ཁ͢Δʹ

Slide 13

Slide 13 text

Docker in Docker

Slide 14

Slide 14 text

ͪͳΈʹ ެࣜͷϓϥάΠϯ ΋͋ΔΑ

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

υΩϡϝϯτҰ੾ ͳ͍͚Ͳͳ!!!

Slide 17

Slide 17 text

ͻΔ͕͑ͬͯ Docker in Docker

Slide 18

Slide 18 text

ϑΝΠϧߏ੒ ※ Χοί಺ͷ਺஋͸લ߲ͷ࣮ߦॱ % tree -L 2 -a . ├── .drone.yml // ઃఆϑΝΠϧ ᶅ ├── Dockerfile // ͓ͳ͡ΈϏϧυઃఆ ᶈ ├── activator └── drone ├── build.sh // docker build ᶈ&ᶉ └── test.sh // ςετ࣮ߦ༻sh ᶇ

Slide 19

Slide 19 text

drone.yml image: jsoizo/java:openjdk-8u66-jdk cache: - /root/.ivy2/cache script: - /bin/sh +x drone/test.sh - /bin/sh +x drone/build.sh notify: slack: webhook_url: 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxx' username: 'drone' channel: '@jsoizo' on_started: false on_success: true on_failure: true

Slide 20

Slide 20 text

image: jsoizo/java:openjdk-8u66-jdk cache: - /root/.ivy2/cache script: - /bin/sh +x drone/test.sh - /bin/sh +x drone/build.sh notify: slack: webhook_url: 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxx' username: 'drone' channel: '@jsoizo' on_started: false on_success: true on_failure: true JNBHFίϯςφͷΠϝʔδ drone.yml

Slide 21

Slide 21 text

image: jsoizo/java:openjdk-8u66-jdk cache: - /root/.ivy2/cache script: - /bin/sh +x drone/test.sh - /bin/sh +x drone/build.sh notify: slack: webhook_url: 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxx' username: 'drone' channel: '@jsoizo' on_started: false on_success: true on_failure: true drone.yml DBDIF࠶ར༻෺ΛΩϟογϡ

Slide 22

Slide 22 text

image: jsoizo/java:openjdk-8u66-jdk cache: - /root/.ivy2/cache script: - /bin/sh -x drone/test.sh - /bin/sh -x drone/build.sh notify: slack: webhook_url: 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxx' username: 'drone' channel: '@jsoizo' on_started: false on_success: true on_failure: true TDSJQUࣗಈԽ͍ͨ͠ॲཧ drone.yml

Slide 23

Slide 23 text

image: jsoizo/java:openjdk-8u66-jdk cache: - /root/.ivy2/cache script: - /bin/sh +x drone/test.sh - /bin/sh +x drone/build.sh notify: slack: webhook_url: 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxx' username: 'drone' channel: '@jsoizo' on_started: false on_success: true on_failure: true OPUJGZ׬ྃ௨஌ઌ drone.yml

Slide 24

Slide 24 text

test.sh #!/bin/bash -eu # ςετ࣮ߦ ./activator test

Slide 25

Slide 25 text

build.sh #!/bin/bash -eu # DockerσʔϞϯىಈ /usr/local/bin/wrapdocker & sleep 5 DRONE_COMMIT_SHORT=`git rev-parse --short ${DRONE_COMMIT}` # quay.ioʹϩάΠϯ docker login -e="." -u="jsoizo+drone_20151014" -p="XXXXXXXXXXX" quay.io # build docker build -t quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-${DRONE_COMMIT_SHORT} . # push docker push quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-${DRONE_COMMIT_SHORT} # DockerσʔϞϯऴྃ start-stop-daemon --stop --pidfile "/var/run/docker.

Slide 26

Slide 26 text

#!/bin/bash -eu # DockerσʔϞϯىಈ /usr/local/bin/wrapdocker & sleep 5 DRONE_COMMIT_SHORT=`git rev-parse --short ${DRONE_COMMIT}` # quay.ioʹϩάΠϯ docker login -e="." -u="jsoizo+drone_20151014" -p="XXXXXXXXXXX" quay.io # build docker build -t quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-${DRONE_COMMIT_SHORT} . # push docker push quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-${DRONE_COMMIT_SHORT} # DockerσʔϞϯऴྃ start-stop-daemon --stop --pidfile "/var/run/docker. build.sh MPHJO

Slide 27

Slide 27 text

#!/bin/bash -eu # DockerσʔϞϯىಈ /usr/local/bin/wrapdocker & sleep 5 DRONE_COMMIT_SHORT=`git rev-parse --short ${DRONE_COMMIT}` # quay.ioʹϩάΠϯ docker login -e="." -u="jsoizo+drone_20151014" -p="XXXXXXXXXXX" quay.io # build docker build -t quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-$ {DRONE_COMMIT_SHORT} . # push docker push quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-${DRONE_COMMIT_SHORT} # DockerσʔϞϯऴྃ build.sh CVJME

Slide 28

Slide 28 text

#!/bin/bash -eu # DockerσʔϞϯىಈ /usr/local/bin/wrapdocker & sleep 5 DRONE_COMMIT_SHORT=`git rev-parse --short ${DRONE_COMMIT}` # quay.ioʹϩάΠϯ docker login -e="." -u="jsoizo+drone_20151014" -p="XXXXXXXXXXX" quay.io # build docker build -t quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-${DRONE_COMMIT_SHORT} . # push docker push quay.io/jsoizo/play-docker-lt-20151014:${DRONE_BRANCH}-$ {DRONE_COMMIT_SHORT} # DockerσʔϞϯऴྃ build.sh QVTI

Slide 29

Slide 29 text

ͪͳΈʹ

Slide 30

Slide 30 text

Registry :

Slide 31

Slide 31 text

• CoreOS͕ࣾӡӦ͢ΔDocker Registry • “͖ʔ͍͓͋ʔ”ͬͯಡΉͬΆ͍ʔ • DockerHubͱൺ΂ͯ • (࠾༻౰࣌͸) ΠϝʔδͷDL͕଎͔ͬͨ • [ࢲݟ] Web UIͷૢ࡞ੑ͕ྑ͍ • DockerHubΈͨ͘ token Ͱpushͱ͔ग़དྷͳ͍͕ • RobotΞΧ΢ϯτΛ࡞ΕΔ => ࣗಈԽͷ͓ڙʹ

Slide 32

Slide 32 text

drone.ioࢼͯ͠Έͨ ݁ՌɺͲ͏Α???

Slide 33

Slide 33 text

ͱΓ͋͑ͣ ࣗಈԽग़དྷͨ

Slide 34

Slide 34 text

͕ɺ՝୊͕ࢁ੝ΓͰ վળͷ༨஍͋Γ

Slide 35

Slide 35 text

͕ɺ՝୊͕ࢁ੝ΓͰ վળͷ༨஍͋Γ '30.ͷΠϝʔδΛ ຖճ%-ͯ͠Δ (JU'MPXΛ ࣗಈԽͰ͖ͯͳ͍ Ϗϧυ࣌ʹ%-ͨ͠KBSΛ Ωϟογϡ͍ͨ͠

Slide 36

Slide 36 text

ҰํͰɺ ϙδςΟϒͳ࿩

Slide 37

Slide 37 text

v0.4Ͱେ෯ʹ ػೳ௥Ճ͕͋Δ໛༷ https://github.com/drone/drone/tree/0.4.0 http://readme.drone.io/docs/build/index.html

Slide 38

Slide 38 text

ྫ) ίϯςφىಈ࣌ͷ Φϓγϣϯ͕૿͑Δ WPMVNFΛࢦఆͰ͖Δ ˠϗετͷTPDLFUϚ΢ϯτ͢Ε͹ %PDLFSJO%PDLFS͔Βଔۀग़དྷͦ͏

Slide 39

Slide 39 text

ྫ) docker-compose෩ʹ αϙʔτίϯςφΛ ্͛ΒΕΕΔ FH"FSPTQJLFͳͲͷ ϨΞͳ%#΁ͷࢀরͱ͔ʹ

Slide 40

Slide 40 text

·ͱΊ

Slide 41

Slide 41 text

Summary • drone.io : golang੡ CI • drone.ymlʹॻ͔Εͨͱ͓ΓʹϏϧυͯ͘͠ΕΔ • drone.io؀ڥԼͰͷdockerͷΠϝʔδϏϧυ • Docker in Docker • plugin͸υΩϡϝϯτෆ଍ͰఘΊͨ • Service(link)Λ্ख͘࢖͏ํ๏͕͋Γͦ͏ • ·ͩग़དྷΔ͜ͱগͳ͍(v0.3)ͷͰԿͰ΋΍Γ͍ͨਓʹ͸ΩπΠ • v0.4Ͱվળ͞Εͦ͏

Slide 42

Slide 42 text

Thank You!!!