dockerで社内外の環境を整えた話

 dockerで社内外の環境を整えた話

PHPカンファレンス福岡2016

小規模な受託開発の会社で、開発・ステージング環境用途として
dockerを利用した際の経験談&まとめです。

F04982ad61107b5408ad139966596316?s=128

Ryo Tomidokoro

May 21, 2016
Tweet

Transcript

  1. 7.

    ෼ͰEPDLFSΛ෮श  Dockerfileͷ࣮ྫ FROM php:7.0-apache Maintainer hanhan1978 RUN docker-php-ext-install -j$(nproc)

    mysql RUN a2enmod rewrite EXPOSE 8080 CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”] 1 2 3
  2. 9.

    ෼ͰEPDLFSΛ෮श  ϕʔεΠϝʔδ͸Ͳ͔͜Βʁ σϑΥϧτ͸ެࣜϨϙδτϦ privateϦϙδτϦ͸༗ྉ EPDLFSIVC EPDLFSSFHJTUSZ OSSͷdocker image ετΞ

    ࣗલͰ༻ҙ ઐ೚ͷΠϯϑϥ୲౰͕͍ͳ͍ձࣾͷ৔߹ ϝϯς΍ೝূ͕໘౗ͳͷͰ΍Ίͨํ͕ແ೉
  3. 10.

    ෼ͰEPDLFSΛ෮श  Πϝʔδߏங༻ͷίϚϯυ RUN docker-php-ext-install -j$(nproc) mysql RUN a2enmod rewrite

    2 • ίϚϯυΛ࣮ߦ͢ΔΑ͏ͳΠϝʔδͰཏྻ • ϩʔΧϧʹ༻ҙͨ͠ϑΝΠϧΛΠϝʔδʹCOPYͱ͔΋Մ • ৄ͘͠͸ެࣜυΩϡϝϯτࢀর
  4. 13.

    ෼ͰEPDLFSΛ෮श  ίϯςφΛ࣮ߦ $ docker run -d -p 8080:80 [Πϝʔδ໊]

    ίϯςφͰexpose͞Εͨ80൪portΛ ϗετOSͷ8080ʹඥ෇͚ جຊ͸ίϨ͚ͩʂ
  5. 18.
  6. 22.

    ׆༻ྫɾߏ੒ྫ  docker-compose ίϯςφ࣮ߦ࣌ͷઃఆ͸ZNMͰҰݩ؅ཧ mysql: image: mysql volumes: - /host/mysql:/var/lib/mysql

    restart: always gyazo: build: docker-files/gyazo environment: - SRC_PATH=/hoge/fuga restart: always
  7. 23.

    ׆༻ྫɾߏ੒ྫ  1. ੩తαΠτͷ֬ೝ؀ڥ DPOUBJOFS git pushͰCI΁௨஌ docker-compose build [container]

    ϑϩϯτΤϯυΤϯδχΞ͸ɺΫϥΠΞϯτ΁ͷαΠτߋ৽ͷڞ༗Λ ҙࣝ͠ͳͯ͘Α͘ͳͬͨɻ ͱʹ͔͘ૣ͘ίʔυΛॻ͍ͯɺ164)
  8. 24.

    ׆༻ྫɾߏ੒ྫ  2. OSS͓ࢼ͠؀ڥ docker-compose up -d opengrok opengrok: image:

    itszero/opengrok volumes: - /hoge/fuga:/src ports: - “3001:8080" DPNQPTFZNMʹઃఆΛ௥Ճͯ͠UP͢Δ͚ͩ
  9. 25.

    ׆༻ྫɾߏ੒ྫ  3. ։ൃ -> εςʔδ΁൓ө ։ൃ DPOUBJOFS DPOUBJOFS DPOUBJOFS

    DPOUBJOFS ʹEPDLFSGPSNBD CFUB ΋ग़ͨͷͰɺͦΕͰ΋0, εςʔδ ։ൃ࣌ͷߏ੒Ͱͦͷ··UPͰ͖Δʂॴཁ࣌ؒ෼
  10. 27.

    ௕ॴɾ୹ॴ  ྑ͔ͬͨ͜ͱ ϗετ͸গ਺ͳͷͰϝϯςָ͕ ΞϓϦͷ͓ࢼ͠ར༻͸ϚδͰָ ґଘؔ܎͸ίϯςφଆͰղܾ͞Ε͍ͯΔ gitlab, redmine => Έͳ͞·΋Πϯετʔϧ࣌ͷਏ͞ʹ͕֮͑͋Δ͔ͱɾɾɾ

    VMΛෳ਺্ཱ͍ͪ͛ͯͨ࣌ʹൺ΂Δͱஈҧ͍ => ೴͕֮͑ͯΒΕΔݸ਺ ੬ऑੑରԠ => ίϯςφ࠶Ϗϧυ & ϗεταʔόʹରԠͰOK
  11. 29.

    ௕ॴɾ୹ॴ  ѱ͔ͬͨ͜ͱ ਓࡐϘτϧωοΫ ੩తαΠτߏஙͷίϯςφ࡞੒ => ٸ͍Ͱ΋30෼ ϑϩϯτΤϯυΤϯδχΞͷΈͰ͸׬݁Ͱ͖ͳ͍ => ݁ہɺherokuΛ࢖͏͜ͱʹͨ͠

    docker-machineͷͭΒΈ VirtualBoxͰಈ࡞͢ΔdockerͳͷͰɺϗετϚγʔϯଆͱͷ௨৴ ΍ϑΝΠϧڞ༗ͳͲ͕໘౗ ɹ=> docker for mac, windows͕ٹੈओ͔΋