Slide 1

Slide 1 text

Jenkins + Docker 
 Batch࣮ߦ 2018/4/11
 
 ໦ଜ༐ଠ

Slide 2

Slide 2 text

Batch࣮ߦͷྲྀΕ scheduled trigger (ఆظ࣮ߦ) Batch࣮ߦ༻ͷEC2 Jenkins༻ͷEC2 1. docker image pull
 (imageͷऔಘ) ECR 2. docker-compose run (batchॲཧͷ࣮ߦ) DB ,S3 ͳͲ 3. log͸CloudWatch logsʹग़ྗ

Slide 3

Slide 3 text

Batchશମͷ࣮ߦͷྲྀΕ • Batchࣗମͷδϣϒεέδϡʔϥʔ؅ཧ͸JenkinsΛར༻ • EC2্ʹJenkinsΛઃఆͯ͠ར༻
 (ͦͷ͏ͪJenkins΋DockerԽ͍ͨ͠ɾɾɾ) • ֤BatchͷJobͷ੍ޚʹPipelineΛར༻

Slide 4

Slide 4 text

Jenkins Pipelineͱ͸ • Jenkins2͔Βඪ४ར༻ग़དྷΔΑ͏ʹͳͬͨ(چpipeline plugin) • ֤Jobͷॲཧͷॱ൪΍ґଘؔ܎Λ੔ཧɾ࣮ߦ͢ΔͨΊͷػೳ • git؅ཧͯ͠ɺgit͔Β௚઀ϑΝΠϧΛಡΈग़࣮ͯ͠ߦ΋Մೳ • ॲཧ಺༰ΛGroovyͰॻ͘͜ͱ͕ग़དྷΔͷͰಈతͳॲཧ΋هड़ग़དྷΔ • pipelineܗࣜͰॻ͘ͱɺjobͷ಺༰͕visualize͕ग़དྷΔ(·ͩΠϚΠνͳ෦෼΋ ଟ͍͕ɺɺɺ) • doc • https://jenkins.io/doc/book/pipeline/


Slide 5

Slide 5 text

Jenkinsfile ײ૝ • ೉͍͠ॴ • ৘ใ͕গͳ͍ͷͰֶशίετ͕͋Δ • ·ͩ৽͍͠ͷͰɺػೳͷมԽ͕ૣ͍ • ྑ͔ͬͨॴ • ίʔυϕʔεͰJobͷґଘੑΛॻ͚Δ • pipelineͷܗͰJobΛهࡌ͢ΔͱɺJobͷґଘੑ͕ݟ΍͍͢ • ScriptͰಈతͳparameter΋࡞੒ग़དྷΔ

Slide 6

Slide 6 text

Batch࣮ߦ؀ڥ

Slide 7

Slide 7 text

• ࣮ߦ؀ڥ͸DockerΛར༻ • Docker Imageͷbuild͸CircleCIͰߦ͍ɺECRʹpush͢Δ • Jenkins͔ΒDocker͕ೖ͍ͬͯΔEC2ʹରͯ͠ɺDockerΛىಈɺ Docker্ͰBatchΛ࣮ߦ Batchͷ࣮ߦ؀ڥ

Slide 8

Slide 8 text

Docker BuildͷྲྀΕ Github Developer CircleCI ECR (Elastic Container Registry) git push build trigger docker push githubͷίʔυΛར༻ͯ͠ɺ
 dockerͷimageΛbuildΛߦ͏

Slide 9

Slide 9 text

Dockerͷར༻ํ๏ • ֤RepositoryͰ͸DockerΛར༻ͯ͠։ൃ • MasterʹMerge͞ΕͨΒɺCircleCIͰDockerͷImageΛbuild,ECRͰ push͢ΔΑ͏ʹ͍ͯ͠Δ • BatchͰ͸ECR্ʹPush͞ΕͨImageΛར༻ͯ͠ɺEC2্ͰdockerΛ ىಈɺॲཧΛ࣮ߦ

Slide 10

Slide 10 text

Batch࣮ߦ؀ڥͷ·ͱΊ • ೉͍͠ॴ • DockerΛར༻ͨ͠ࡍͷ؀ڥ৘ใͷ੔ཧ • 12 factors appతʹ͸؀ڥม਺ʹ੾Γग़͢ͷ͕ͩɺ؅ཧ͕େม • Parameter StoreΛ࢖ͬͯΈ͕ͨɺ·ͩ࢖͍ͮΒ͔ͬͨͷͰࠓճ͸அ೦͠·͠ ͨɻɻɻ • ྑ͔ͬͨॴ • DockerΛར༻ͨ͠෦෼ • ࣮ߦ؀ڥͷґଘΛ੔ཧ͠΍͘͢ͳͬͨ • Docker͑͞ೖ͍ͬͯΕ͹ɺಉ͡αʔόʔ্Ͱ৭ʑͳݴޠΛಈ͔ͤͨ • CloudWatch Logs΁ͷઃఆ͕͠΍͍͢

Slide 11

Slide 11 text

͋Γ͕ͱ͏͍͟͝·ͨ͠