Slide 1

Slide 1 text

଎श DockerͱֶͿPHP @ayato_tw 2018/03/10 PhperKaigi 2018

Slide 2

Slide 2 text

ࡢ೔ͷલ໷ࡇ

Slide 3

Slide 3 text

ࡢ೔ͷલ໷ࡇ > PHPerͳΒ͜ΕΒΛ֮ࣗతʹ ʮ࡞Εʯ·͢ΑͶ řŏŕ

Slide 4

Slide 4 text

؀ڥߏஙΛεϚϗͰྫ͑Δ 1)1͕ಈ͘
 αʔόʔ࡞ͬͯ εϚϗͰ
 5XJUUFSݟΕΔ༷ʹͯ͠ 㱺

Slide 5

Slide 5 text

؀ڥߏஙΛεϚϗͰྫ͑Δ 1)1͕ಈ͘
 αʔόʔ࡞ͬͯ
 
 ΋ͪΖΜ(%ͱ͔ *NBHF.BHJDLͱ͔ಈ͘ΑͶ εϚϗͰ
 5XJUUFSݟΕΔ༷ʹͯ͠ ΋ͪΖΜެࣜΞϓϦೖΕΔΑ Ͷ 㱺

Slide 6

Slide 6 text

؀ڥߏஙΛεϚϗͰྫ͑Δ 1)1͕ಈ͘
 αʔόʔ࡞ͬͯ
 
 ΋ͪΖΜ(%ͱ͔ *NBHF.BHJDLͱ͔ಈ͘ΑͶ 0QFO44-͡Όͳͯ͘ -JCSF44-Ͱ εϚϗͰ
 5XJUUFSݟΕΔ༷ʹͯ͠ ΋ͪΖΜެࣜΞϓϦೖΕΔΑ Ͷ 2ஈ֊ೝূ͸SMS͡Όͳͯ͘ ΞϓϦ 㱺

Slide 7

Slide 7 text

ͪͳΈʹձ৔Ͱ͸ 1. εϚϗͰTwitterݟͯΔਓ 2. εϚϗͰTwitterΛެࣜΞϓϦͰݟ͍ͯΔਓ 3. εϚϗͰTwitterΛެࣜΞϓϦͰݟ͍ͯͯɺ͔ ͭ2ஈ֊ೝূʹΞϓϦΛ࢖͍ͬͯΔํ

Slide 8

Slide 8 text

؀ڥΛ࡞Δͱޡ͕ࠩੜ·ΕΔ • ͤΊͯϨγϐ͕͋Ε͹... 㱺 Ansible, Itamae ౳ • ͱ͍͏͔(ΊΜͲ͍͠)௚઀࢖͍ճ͠ग़དྷΕ͹... 㱺 Docker ౳

Slide 9

Slide 9 text

DockerΛ࢖ͬͯΈΔ Vagrant౳ͷଞͷԾ૝Խٕज़͸ׂѪ

Slide 10

Slide 10 text

Docker • ৭ΜͳॴͰศརʹ࢖͑Δ༷ʹͳ͖ͬͯͯΔ • GCP / AWS / Azure ͰਐԽ͕ܹ͍͠ • ਎ۙͳॴͩͱ ϩʔΧϧ։ൃ؀ڥ / CircleCI 2.0 • speakerdeck.com/kunit ݟͯʂ

Slide 11

Slide 11 text

DockerͷΠϝʔδ / ίϯςφ Πϝʔδ 㱺 ͍ΘΏΔʮzipͰ͘Εʯ ίϯςφ 㱺 ల։ޙͷϑΝΠϧ܈ (Έ͍ͨͳ΋ͷ) DockerHub 㱺 DockerΠϝʔδ͕ެ։͞ΕͯΔॴ ≒ GitHub

Slide 12

Slide 12 text

DockerͷΠϝʔδ / ίϯςφ ͜ΕͰ؀ڥͷ࢖͍ճ͕͠ग़དྷΔʂ 1. hub.docker.com ͰΠϝʔδΛ୳͢ 2. ΠϝʔδΛ࣋ͬͯ͘Δ (docker pull) 3. ίϯςφΛىಈͯ͠࢖͏ (docker run, docker exec, …)

Slide 13

Slide 13 text

DockerͷΠϝʔδ / ίϯςφ εϚϗͷྫ͑Ͱݴ͏ͱ 1. ళฮͰTwitterެࣜΞϓϦ౳ͷઃఆ͕ऴΘͬͨεϚϗΛ୳͢ 2. εϚϗΛങ͏ 3. ిݯΛೖΕͯ࢖͏ ؆୯ʂɹ(ྫ͑࿩͔ͩΒళฮා͍ͱ͔ݴΘͳ͍)

Slide 14

Slide 14 text

Dockerfile • shell script ͬΆ͍΋ͷ • Πϝʔδͷ࡞Γํ • ళฮͷઃఆϚχϡΞϧతͳ • ྫͱͯ͠ wordpress:4.9-php56-apache ͷ DockerΠϝʔδΛௐ΂ͯΈΔ

Slide 15

Slide 15 text

wordpress:4.9-php56-apache • hub.docker.com/_/wordpress/ ΁ΞΫηε • 4.9-php5.6-apache λάͷ Dockerfile ΛݟͯΈΔ
 㱺 GitHubʹ Dockerfile ͕ஔ͍ͯ͋Δ • FROM ͱ RUN ͷॴʹ஫໨
 㱺 gd / mysqli / opcache ͸ೖͬͯΔ
 㱺 WordPressຊମ΋ઃஔࡁΈ • ͋Εɺapache͸ʁ

Slide 16

Slide 16 text

FROM ۟ΛḷΔ • FROM php:5.6-apache ͳͷͰ
 hub.docker.com/_/php/ ΁ΞΫηε • 5.6-apache λάΛݟΔ
 㱺 ͜Ε΋GitHubͰDockerfileΛݟͯΈΔ ...ͱ͍͏ײ͡ͰDockerfile८Γͷཱྀ͕ग़དྷ·͢ ྑ͍ઃఆ͸ਅࣅ͠Α͏ʂ(ϥΠηϯεOKͳΒ)

Slide 17

Slide 17 text

Dockerʹڵຯ͕͋Ε͹ DockerެࣜΠϝʔδΛݟͯΈͨΓ hub.docker.com/r/library/ 
 ެࣜυΩϡϝϯτͷ೔ຊޠ༁ΛಡΜͰΈͨΓ ҎԼͷΩʔϫʔυͰάάͬͯΈͨΓ • docker-php-ext-install • docker-compose • ϓϥΠϕʔτϨδετϦ

Slide 18

Slide 18 text

࠷ޙʹ Dockerfile८ΓͷཱྀΛ͠ͳ͕Β PHPͱDockerΛಉ࣌ʹษڧͯ͠Έ·͠ΐ͏ʂ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ