CircleCI 2.0 を使い倒そう / phpcon kansai 2018 circlci docker

CircleCI 2.0 を使い倒そう / phpcon kansai 2018 circlci docker

PHPカンファレンス関西 2018 CircleCI 2.0 を使い倒そうというタイトルでトークしたものです

42305fafd669602e3865a9ac99313257?s=128

TAKAHASHI Kunihiko

July 14, 2018
Tweet

Transcript

  1. $JSDMF$* Λ࢖͍౗ͦ͏ QIQDPOGFSFODF,BOTBJ LVOJU

  2. ࣗݾ঺հ ✓ !LVOJU ✓ߴڮ๜඙ ✓OFDPNPSJ--$ ✓ʮ1)1ϚχϡΞϧΛಡ΋͏ʯQPEDBTU ✓IUUQQIQNBOVBMOFDPNPSJBTJB ✓QIQPOEPD ✓ฌݿݝग़਎

  3. Կ͸͓͍ͯ΋ ✓ݱࡏɺདྷ೥ͷ$BLF'FTUΛͲ͜Ͱ։࠵͢ Δ͔ͱ͍͏։࠵஍ͷ౤ථ͕ߦΘΕ͍ͯ·͢ ✓ͦͷީิʹͳΜͱ೔ຊؚ͕·Ε͓ͯΓ·͢ ͷͰͥͻօ͞Μ౤ථΛ͓ئ͍͠·͢ʂ ✓IUUQTDBLFGFTUPSH ✓౤ථʹ͸.Z$BLF1)1αΠτ΁ͷొ࿥ ͕ඞཁͱͳΔͷͰͦͷ఺͚͓ͩؾΛ͚ͭͩ͘ ͍͞ʂ

  4. ͦ΋ͦ΋$*ͱ͸ ✓8JLJQFEJB͞ΜʹΑΕ͹ ✓$POUJOVPVT*OUFHSBUJPOͷུ ✓ܧଓతΠϯςάϨʔγϣϯ ✓ओʹϓϩάϥϚʔͷΞϓϦέʔγϣϯ࡞੒࣌ͷ ඼࣭վળ΍ೲظͷ୹ॖͷͨΊͷश׳ͷ͜ͱͰ͋Δɻ ΤΫετϦʔϜɾϓϩάϥϛϯά 91 ͷϓϥΫ ςΟεͷҰͭͰɺڱٛʹ͸Ϗϧυ΍ςετɺΠϯ

    εϖΫγϣϯͳͲΛܧଓతʹ࣮ߦ͍ͯ͘͜͠ͱΛ ҙຯ͢Δ
  5. ݁ہ$*ͬͯͳʹ͢Μͩʁ ✓ԿΒ͔ͷτϦΨʔΛड͚ͯ ✓ܾΊΒΕͨॲཧΛߦ͏

  6. τϦΨʔͱͳΔͷ͸ ✓(JU)VC౳ʹίʔυΛ QVTIͨ͠ͱ͖ʹىಈ ✓ܾΊΒΕͨ࣌ؒʹىಈ ✓खಈͰىಈ

  7. ࣮ߦ͢Δॲཧྫ ✓ඞཁͳϥΠϒϥϦͷΠϯετʔϧ ✓DPNQPTFSJOTUBMMతͳ ✓ίʔσΟϯάελΠϧνΣοΫ ✓৔߹ʹΑͬͯ͸ίʔυϑΥϚοτ΋͔͚ͯ͠·͏ ✓จ๏νΣοΫ ✓ίϯύΠϧϦϯΫ 1)1Ͱ͸ͳ͍͚Ͳ  ✓ςετ

    ୯ମ&&  ✓σϓϩΠ
  8. $JSDMF$*ʹ͍ͭͯ ✓ͱͱ͍͏όʔδϣϯҧ͍ͷαʔϏ ε͕͋Δ ✓͸དྷ݄  ຤ʹऴྃ͢Δ ✓͸೉͍͠ͱ͍͏࿩ΛΑ͘ฉ͘ ✓͍ͭ࠷ۙ$JSDMF$*+BQBO͕Ͱ͖ͯɺࠓ πΠολʔͰઈࢍΤΰαʔν͞ΕͯΔͷͰɺ ࣭໰ͨ͠Β͙͢ʹ৯͍͍ͭͯ΋Β͑Δ͔Βνϟ

    ϯεʂ
  9. ͞ΑͳΒ$JSDMF$* ✓6CVOUVͰͭ͘ΒΕͨશ෦ೖΓͷ7.্Ͱ ςετΛߦ͏ ✓QIQFOW͕࢖ΘΕ͍ͯͯඞཁʹԠͯ͡όʔ δϣϯΛ੾Γସ͑Δ ✓.Z42-΍3FEJT΋ඞཁʹԠͯ͡࢖͑Δ ✓σϑΥϧτͷڍಈ͕͋ΓɺͦΕΛͦͷ··࢖ ͑͹ྑ͍ͷͰ͋Ε͹ઃఆ͕͋·Γඞཁͳ͔ͬͨ ✓ͳΕͨਓ͔Β͢Δͱͱͯ΋؆୯

  10. Α͏ͦ͜$JSDMF$* ✓ಉ༷ͷ7.ϕʔεͷॲཧ΋Ͱ͖Δ͕ਪ঑͞Εͯͳ ͍ ✓ਪ঑͞ΕΔͷ͸%PDLFSΠϝʔδΛ࢖͏΋ͷ ✓%PDLFSͷ஌͕ࣝඞཁͱͳΔͷͰ֮͑Δ͜ͱ͕૿͑ ͨ ✓.Z42-΍3FEJTΛ͔ͭ͏ͳΒ͹ɺͦΕ༻ͷ %PDLFSΠϝʔδΛ࢖͏ඞཁ͕͋Δ ✓Θ͔ͬͯ͠·͑͹ɺԿ΋͔΋ίϯτϩʔϧͰ͖ΔͷͰ ศརͳͷ͕ͩɺ֮͑Δ͜ͱ͕૿͑ͨͷͰͱ͖ͬͭʹ͍͘

    ೉͍͠ͱ͍͍ͬͯΔͻͱ͕ଟ͍
  11. $JSDMF$*ͷར༻ྉۚ͸ʁ ✓ແྉ࿮͕͋Δͷͬͯ͠·ͨ͠ʁ ✓ίϯςφ ✓ฒྻ࣮ߦͰ͖ͳ͍ ✓෼݄·ͰॲཧՄೳ ✓ຊ֨తʹ࢖͏ͱ͍͍ײ͡ʹ࢖͍੾Δ࣌ؒ ✓ର৅ϦϙδτϦ࣮ߦϢʔβ͕ෳ਺Ͱ΋͍͍ ✓ϓϥΠϕʔτϦϙδτϦͰ΋͍͍ ✓ฒྻ౓ɺ࣮ߦίϯςφ਺ʹԠͯ͡՝ۚ͞ΕΔ ✓ίϯςφ૿΍͢͝ͱʹ݄

    ✓·ͩҰൠެ։͞Εͯͳ͍͕ɺैྔ՝ۚϓϥϯ΋௥Ճ͞ΕΔ༧ఆ
  12. $JSDMF$*Ͱͷಈ࡞Πϝʔδ ✓%PDLFSΠϝʔδΛऔಘ͠ɺίϯςφΛىಈ ✓ىಈͨ͠ίϯςφ্ʹιʔεΛHJUDMPOF ✓ىಈͨ͠ίϯςφ্ͰDPNQPTFSJOTUBMMΛ࣮ߦ ✓ىಈͨ͠ίϯςφ্ͰQIQDTΛ࢖ͬͯίʔσΟϯά ελΠϧνΣοΫ ✓ىಈͨ͠ίϯςφ্Ͱ1IBOΛ࢖ͬͯ੩తղੳͯ͠จ ๏νΣοΫ ✓ىಈͨ͠ίϯςφ্Ͱ1)16OJUΛ࢖ͬͯ୯ମςετ ✓͜͜·Ͱͷॲཧ͕੒ޭ͔ͨ͠Ͳ͏͔ΛTMBDLʹ௨஌

  13. $JSDMF$*ͱͷ࿈ܞํ๏ ✓ઃఆϑΝΠϧ͸ɺϦϙδτϦͷτο ϓʹDJSDMFDJͱ͍͏σΟϨΫτ ϦΛ࡞ΓɺͦͷதʹDPOpHZNM ͱ͍͏ϑΝΠϧΛஔ͘ͱͦΕΛ࢖ͬ ͯ$*͕࣮ߦ͞ΕΔ ✓DPOpHZNMͷॻ͖ํΛ؆୯ʹ આ໌͍͖ͯ͠·͢

  14. DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers -

    image: circleci/mysql:5.7 steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpcs —standard=PSR2 ./app - run: mkdir ~/phpunit - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
  15. DJSDMFDJDPOpHZNM ✓ઃఆ͢ΔηΫγϣϯ ✓KPCT ✓ෳ਺ͷδϣϒΛઃఆ͢Δ ✓XPSLqPXT ✓ෳ਺ͷδϣϒΛͲͷΑ͏ʹ࣮ߦ ͢Δ͔Λઃఆ͢Δ

  16. DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers -

    image: circleci/mysql:5.7 steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpcs —standard=PSR2 ./app - run: mkdir ~/phpunit - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
  17. KPCT ✓δϣϒΛઃఆ͢Δ δϣϒ͸ෳ਺͋ͬͯ΋ྑ͍  ✓δϣϒ໊ ௨ৗ͸CVJMEͱ͍͏໊લʹ͢Δ  ✓ޙ΄Ͳग़ͯ͘ΔXPSLqPXͰ࢖༻͢Δ ✓FYFDVUPSΛઃఆ ✓EPDLFS

    ✓NBDIJOF ಉ༷ͷ7.؀ڥ  ✓NBDPT ✓TUFQTͰࡉ͔͍࣮ߦ಺༰Λઃఆ͢Δ
  18. DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers -

    image: circleci/mysql:5.7 steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpcs —standard=PSR2 ./app - run: mkdir ~/phpunit - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
  19. TUFQT ✓DIFDLPVU ✓ιʔεΛDIFDLPVU͢Δ ✓SVO ✓ίϚϯυΛ࣮ߦ͢Δ ✓SFTUPSF@DBDIFTBWF@DBDIF ✓DPNQPTFS΍CVOEMFSΛຖճ΍͍ͬͯΔͱ࣌ؒ ͷΉͩͳͷͰɺద౰ͳΩʔΛ࢖ͬͯΩϟογϡ͢Δ ✓TUPSF@UFTU@SFTVMUTTUPSF@BSUJGBDUT ✓ςετ݁ՌΛ$*ͷ݁Ռදࣔʹ൓өͤ͞Δ

  20. DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers -

    image: circleci/mysql:5.7 steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpcs —standard=PSR2 ./app - run: mkdir ~/phpunit - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
  21. SVO ✓ίϚϯυΛ࣮ߦ͢Δ΋ͷͩ ͕ɺ࣮ߦը໘Ͱදࣔ͢Δจࣈ ྻΛઃఆͰ͖Δ - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml -

    run: name: run tests command: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - run: name: run tests command: | ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml
  22. ෳ਺ͷ%PDLFSΠϝʔδΛ࢖͏ ✓EPDLFSFYFDVUPSͷઃఆͰෳ਺ͷΠϝʔδΛࢦఆ͢Δ ✓ͭ໨ʹࢦఆͨ͠Πϝʔδ͕ϓϥΠϚϦΠϝʔδʹͳΓɺ TUFQTҎ߱ͷίϚϯυ͸ͦͷΠϝʔδʹର࣮ͯ͠ߦ͞ΕΔ ✓ͦͷଞͷίϯςφͷϓϩηεʹ͸ɺ ϙʔτ൪ ߸ ͰΞΫηεͰ͖Δ version: 2

    jobs: build: docker: - image: php:7.1-apache - image: circleci/mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_app MYSQL_USER: test MYSQL_PASSWORD: test - image: redis:3.2
  23. XPSLqPX ✓ෳ਺ͷδϣϒΛͲͷΑ͏ͳґଘؔ ܎ ॱ൪ Ͱ࣮ߦ͢Δ͔ΛఆٛͰ͖Δ ✓ྫ͑͹ɺQIQDTͰΤϥʔ͕ͳ͍৔ ߹ͷΈɺQIQVOJUΛ૸Β͍ͤͨͱ͔ ✓ܾ·ͬͨ࣌ؒʹδϣϒΛ࣮ߦ͢Δ ػೳ΋͋Δ

  24. DJSDMFDJDPOpHZNM version: 2 jobs: phpcs: ... test: ... deploy: ...

    workflows: version: 2 phpcs_test_deploy_workflow: jobs: - phpcs - test: requires: - phpcs - deploy filters: branches: only: - master requires: - test
  25. DJSDMFDJDPOpHZNM version: 2 jobs: daily_job: ... workflows: version: 2 cron_workflow:

    triggers: - schedule: cron: “0 18 * * *” filters: branches: only: - develop jobs: - daily_job
  26. $JSDMF$* ✓ઃఆʹؔͯ͠͸ɺ࣮ߦ͍ͨ͠ίϚϯυ ΛSVOͰฒ΂͍͚ͯ͹͍͍͚ͩͳͷͰ ͦΜͳʹ೉͘͠ͳ͍ ✓ϩʔΧϧͰಈ࡞νΣοΫ͢Δ DJSDMFDJίϚϯυ͕४උ͞Ε͍ͯΔ ✓ඍົʹڍಈ͕͓͔͍͠ ✓XPSLqPXʹରԠͯ͠ͳ͍ɾɾɾ

  27. $JSDMF$* ✓ಈ࡞Πϝʔδͱઃఆํ๏͕ Θ͔ͬͯ΋؊৺ͷ%PDLFS ͷ͜ͱ͕Θ͔Βͳ͍ͷͰɺͲ ͏ͨ͠Βྑ͍͔Θ͔Βͳ͍ ✓ͱ͍͏͜ͱͰɺ͔͜͜Β͸ %PDLFSೖ໳

  28. ࣌ؒνΣοΫ ͜͜·Ͱ෼ ͩͱྑ͍ͳɾɾɾ

  29. %PDLFSͷ೉қ౓ ✓%PDLFSͷ೉қ౓͸ஈ֊ʹ ෼͔ΕΔͷͰ͸ͳ͍͔ʁ ✓ୈҰஈ֊഑෍͞Ε͍ͯΔΠ ϝʔδΛར༻͢Δ͚ͩ ✓ୈೋஈ֊ࣗ෼ͰΠϝʔδΛ ࡞੒ͯͦ͠ΕΛར༻͢Δ

  30. ഑෍Πϝʔδ ✓%PDLFS)VCͱ͍͏࡞੒ࡁΈΠϝʔδ Λ഑෍͢Δ৔ॴ͕͋Δ ✓ͦ͜ʹͨ͘͞ΜͷΠϝʔδ͕ஔ͔Ε͍ͯ ΔͷͰͦΕΛར༻͢Δ͚ͩͰ΋͔ͳΓͷ͜ ͱ͕Ͱ͖Δ ✓ײ֮తʹ͸CSFXJOTUBMMͰNZTRM ΛϩʔΧϧʹೖΕΔΈ͍ͨͳؾ෼Ͱ͔ͭ͑ Δ

  31. ࣮ࡍʹ΍ͬͯΈΔ ✓1)1 BQBDIFΛ %PDLFSͰಈ͔ͯ͠ΈΔ ˞EPDLFSίϚϯυͷΦϓγϣϯ͕͓΅͑ΒΕΜͷΜ ͡Όʔͱ͍͏͝ҙݟʹ͸ಉҙ͠·͢ɻ͍͢͝਺͋Δͷ Ͱɾɾɾ docker container run

    -it --rm -p 80:80 -v ~/Study/phpkansai/ demo/htdocs:/var/www/html php:7.1-apache
  32. ഑෍Πϝʔδ ✓ͨͩ͠ɺࣗ෼ͷ༻్ʹ׬શʹ߹க͍ͯ͠Δͱ͸ݶΒͳ͍ ✓ྫ͑͹ɺ1)1ͷΦϑΟγϟϧΠϝʔδʹ͸JOUM֦ு΍ YEFCVH͸ೖͬͯͳ͍ ✓ΦϑΟγϟϧΠϝʔδ͸͋Δఔ౓৴༻Ͱ͖Δ͕ɺ໺ྑΠϝʔ δ͸جຊతʹ৴༻Ͱ͖ͳ͍ ✓͍ͭ࠷ۙɺ%PDLFS)VCͰ഑෍͞Ε͍ͯͨΠϝʔδʹʮ҉ ߸௨՟࠾۷Ϙοτʯ͕ೖ͍ͬͯͨ͜ͱ͕χϡʔεʹͳͬͯͨ ✓IUUQTKQUFDIDSVODIDPN UBJOUFEDSZQUP

    NJOJOHDPOUBJOFSTQVMMFEGSPNEPDLFSIVC
  33. ͳΒ͹ࣗ෼Ͱͭ͘Ζ͏ ✓%PDLFSΠϝʔδΛࣗ෼Ͱͭ͘Ζ͏ͱ ͢ΔͱҎԼͷ஌͕ࣝඞཁ ✓%PDLFSࣗମͷཧղ ✓-JOVYσΟετϦϏϡʔγϣϯͷཧղ ✓ZVNͱ͔BQUͱ͔ ✓-JOVYίϚϯυͷཧղ ✓֤ιϑτ΢ΣΞͷNBLFํ๏ͷཧղ

  34. ٸʹϋʔυϧ͕͕͋Δ ✓ઌఔ΋͍͕ͬͨɺ%PDLFS)VCͰ͸ΦϑΟγϟϧΠ ϝʔδ͕഑෍͞Ε͍ͯΔ ✓͋ΘͤͯΠϝʔδΛ࡞੒͢Δ΋ͱͱͳΔ%PDLFSpMF ͕ެ։͞Ε͍ͯΔ΋ͷ͕͋Δ ✓ެ։͞Ε͍ͯΔ%PDLFSpMFΛΈΔ͚ͩͰ΋͔ͳΓ ͷ஌͕ࣝಘΒΕΔ ✓ͳͷͰ࠷ॳ͸ΦϑΟγϟϧΠϝʔδΛݩʹɺখมߋͨ͠ ΠϝʔδΛ࡞Δͱ͜Ζ͔Β࢝ΊΔͷ͕͍͍ ✓1)1ͷΦϑΟγϟϧΠϝʔδʹYEFCVH֦ுΛ͍

    Ε͚ͨͩͷΠϝʔδΛ࡞Δͱ͔
  35. ࣗ෼ͰΠϝʔδΛ࡞ΔϝϦοτ ✓ྫ͑͹ɺ$JSDMS$*Ͱɺ1)1ͷΦϑΟ γϟϧΠϝʔδΛͦͷ··࢖͏ͱɺຖճ$* Λճͨ͢ͼʹJOUM֦ுΛೖΕΔॲཧΛ૸ ΒͤΔඞཁ͕͋Δ ✓$*ͷ͕࣌ؒ৳ͼΔ ✓༧ΊJOUM֦ு͕ೖͬͨΠϝʔδΛ࡞ͬͯ ͓͚͹ɺͦͷ͚࣌ؒͩ$*ͷ͕࣌ؒ୹ॖͰ ͖Δ

  36. %PDLFSʹ͍ͭͯ͸ ✓ࠓճͷηογϣϯͰΑ͘Θ͔ΒΜ͔ͬͨ ํ͸ɺͥͻͱ΋͘͞ΒΠϯλʔωοτॴଐ ͷલဠ͞ΜͷࢿྉΛࢀর͍ͯͨͩ͘͠ͷ͕ ͍͍͔ͱࢥ͍·͢ ✓લဠ͞Μͷࢿྉ͸%PDLFSʹֶ͍ͭͯͿ ͷʹ࠷దͩͱࢥ͍·͢ ࢲ΋େม͓ੈ࿩ʹ ͳ͓ͬͯΓ·͢ 

    ✓IUUQTXXXTMJEFTIBSFOFU[FNCVUTV
  37. ϚϯΨͰΘ͔Δ%PDLFS ✓ື઒͍͋͞Μ͕ϚϯΨͰΘ͔Δ %PDLFSͱ͍͏࡭ࢠΛॻ͔Εͯ·͢ ✓͜Ε͸ଓ͖෺Ͱࠓޙ΋ଓ͘Έ͍ͨ ͳͷͰ͜Ε͔Β࢝ΊΑ͏ͱ͍͏ํʹ ͸ͪΐ͏Ͳ͍͍͔΋ʂ ✓IUUQTOPUFNV MMNJOBUPMMOOGECFGGD

  38. ͯ͞ɺ%PDLFSͱ͸ ✓%PDLFSࣾ چEPU$MPVE Λத৺ʹΦʔ ϓϯιʔεͱͯ͠։ൃ͞Ε͍ͯΔίϯςφ ܕԾ૝Խٕज़ ✓ͷय़ʹόʔδϣϯͷ෇͚ํ͕มߋ ͞Εͯɺ%PDLFS$&ͱ͍ͬͨܗ ʹͳͬͨ ✓ͦΕ·Ͱ͸ɺ%PDLFSΈ͍ͨͳ

    ײͩͬͨ͡
  39. 7.ͱͷҧ͍ ✓7.͸࣮ࡍͷϋʔυ΢ΣΞ౳ ΛΤϛϡϨʔγϣϯ͠ɺͦͷ্ Ͱ࣮ࡍͷ04ΛՔಇͤ͞Δ ✓ίϯςφܕԾ૝Խٕज़Ͱ͸ɺ طʹಈ͍͍ͯΔ04ͷϦιʔεΛ ࢖ͬͯɺ৽ͨͳ؀ڥΛىಈ͢Δ

  40. 7.ͱͷҧ͍ )8 04 )ZQFSWJTPS )8 )8 04 04 "QBDIF 3FEJT

    1)1 "QQT )8 04 .Z42- 7. )8 04 %PDLFS&OHJOF "QBDIF 3FEJT 1)1 "QQT .Z42- %PDLFS
  41. Կ͕خ͍͠ͷʁ ✓ىಈ͕࣌ؒ୹͍ ✓Ծ૝)8͓Αͼ04ͷى ಈ෦෼͕ͳ͍ ✓ফඅϦιʔε͕গͳ͍

  42. %PDLFSͷಈ࡞ Registry image container docker image pull docker image push

    docker container run docker container commit Dockerfile docker image build docker container exec
  43. 3FHJTUSZͱ͸ ✓%PDLFS)VCͷΑ͏ʹɺ%PDLFSΠϝʔδΛ഑෍͢Δ΋ ͷΛ3FHJTUSZͱ͍͏ ✓%PDLFS)VC͸%PDLFS͕ࣾӡӦ͍ͯ͠Δ3FHJTUSZ ✓"84ʹ͸&$3ɺ(PPHMF$MPVEʹ͸($3ͱ͍͏ 3FHJTUSZ͕͋Δ ✓%PDLFS)VCͰ഑෍͞ΕͯΔ΋ͷ ✓$FOU04VCVOUV౳ͷ04ͷΠϝʔδ ✓1)13VCZ౳ͷݴޠؚ͕·ΕΔΠϝʔδ ✓&MBTUJD4FBSDI5FOTPS'MPX౳ͷιϑτ΢ΣΞؚ͕

    ·ΕΔΠϝʔδ
  44. ࣮ࡍͲ͏࢖͏ͷ͔ʁ ✓%PDLFS)VC͔Β%PDLFSΠϝʔδΛऔಘ͢Δ ✓औಘͨ͠ΠϝʔδΛ࣮ߦ͢Δͱ࣮ߦ؀ڥίϯςφ ͱͯ͠ಈ࡞͢Δ ✓7.ͱҧͬͯɺ࣮ߦΛऴྃ͢Δͱίϯςφʹର͢Δ มߋ͸ഁغ͞ΕΔ ✓࣮ߦ͢Δͨͼʹಉ͡ঢ়ଶ͔Βಈ࡞͢Δ ✓ͦΕͰ͸ࠔΔ৔߹ ·͊ɺ΄ͱΜͲ͕ͩ ɺϩʔΧ

    ϧͷϑΝΠϧγεςϜΛϚ΢ϯτͯͦ͜͠ʹσʔλ ΛӬଓԽ͢Δ
  45. Πϝʔδͱίϯςφ ✓࠷ॳΑͬͪ͘͝ΌʹͳΔ ✓%PDLFSΛ֮͑Δࡍͷ࠷ॳͷϋʔ υϧ ✓࣮ࡍʹಈ͔ͯ͠ײ֮Λ֮͑Δ ✓1)1ͱ1)1ͷΠϝʔδ Λऔಘͯ͠ίϯςφΛಈ͔ͯ͠ΈΔ

  46. ࣗ෼ͰJNBHFΛCVJME ✓%PDLFS)VCͰ഑෍͞Ε͍ͯΔΠϝʔδ ΛݩʹಠࣗʹΧελϚΠζͨ͠ΠϝʔδΛ࡞੒ ͢Δ ✓%PDLFS)VCͰ഑෍͞Ε͍ͯΔ1)1ͷΠ ϝʔδ͸൚༻తͳ΋ͷͰɺྫ͑͹JOUM֦ு͸ ೖ͍ͬͯͳ͍ͷͰɺ࠷ۙͷϑϨʔϜϫʔΫΛಈ ͔ͦ͏ͱ͢ΔͱɺಠࣗCVJME͢Δඞཁ͕͋Δ ✓ͦ͏͍ͬͨ৔߹ʹ࢖͏ͷ͕%PDLFSpMF

  47. Ξϯνύλʔϯ ✓طʹ7BHSBOU BOTJCMFͷ؀ڥ͕͋Δ৔߹ʹɺ %PDLFSΠϝʔδͷ࡞੒ʹ΋BOTJCMFͷϓϨΠϒοΫ Λ࢖͑ͳ͍͔ࢼ͢ ✓͸·ΔͷͰ΍Ίͨ΄͏͕͍͍ ✓গͳ͘ͱ΋ࢲ͸͸·ͬͨ ✓Ͳͬͪʹ໰୊͕͋ͬͯಈ͔ͳ͍ͷ͔Θ͔Βͳ͘ͳΔ ✓ૉ௚ʹ%PDLFSpMF͔Β࡞Δํ๏Λ࠷ॳʹशಘ͠ ·͠ΐ͏

    ✓BOTJCMFͱͷ૊Έ߹ΘͤΛࢼ͢ͷ͸ͦͷޙͰ΋͍͍
  48. %PDLFSpMF ✓'30.36/"%%$01:౳ͷগ਺ͷ ίϚϯυΛ࢖ͬͯɺΠϝʔδΛ࡞੒͢Δखॱ Λࣔ͢ϑΝΠϧ ✓ඞཁͳ஌ࣝͱͯ͠͸TIεΫϦϓτΛॻ͘ ײ͡ ✓࣮ߦ͍ͯ͘͠ίϚϯυΛॱ൪ʹهड़ͯ͠ ͍͘ײ͡ ✓͜ͷϑΝΠϧΛݩʹΠϝʔδΛCVJME͢Δ

  49. %PDLFSpMFͱCVJMEํ๏ FROM php:7.2-cli RUN pecl install xdebug-2.6.0 \ && docker-php-ext-enable

    xdebug docker build -t kunit/php:7.2-cli . docker run -it --rm kunit/php:7.2-cli php -v docker run -it --rm php:7.2-cli php -v
  50. ͜Θ͘ͳ͍Αʂ ✓$JSDMF$*΋%PDLFS΋ ͳΕΔͱͱͯ΋ศར ✓ಛʹ%PDLFSؔ࿈ͷٕज़ ͸ࠓޙͲΜͲΜ஫໨౓͸্͕ͬ ͍ͯ͘ͱࢥ͏ͷͰ͜ΕΛػձ ʹ֮͑Δͷ͕͍͍ͱࢥ͏

  51. ͝ਗ਼ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠