Upgrade to Pro — share decks privately, control downloads, hide ads and more …

噂のマルチステージングビルドを試してみました

chiroruxx
August 28, 2019

 噂のマルチステージングビルドを試してみました

2019/08/28 PHP勉強会で発表した資料です。

chiroruxx

August 28, 2019
Tweet

More Decks by chiroruxx

Other Decks in Technology

Transcript

  1. ᷚͷ
    ϚϧνεςʔδϯάϏϧυΛ
    ࢼͯ͠Έ·ͨ͠
    1)1ษڧձ!౦ژ
    લా࿨ਓ

    View Slide

  2. ࣗݾ঺հ
    w લా࿨ਓ
    w !DIJSPSVYYYY
    w หޢ࢜υοτίϜ
    w

    View Slide

  3. ࠷ॳʹ
    w %PDLFSͷϚϧνεςʔδϯάϏϧυͷ࿩Λ͠·͢
    w ஌ͬͯΔਓ͸৽͍͠৘ใ͸ͳ͍ͱࢥ͍·͢

    View Slide

  4. ͱ͋ΔҊ݅ʹͯ
    w ͱ͋Δ৽ن։ൃͷҊ݅Λ΍ͬͨͱ͖ͷ࿩
    w ͭͷཁ݅
    ֎෦ύοέʔδΛ࢖༻͢Δ
    w ύοέʔδ͸[JQͰ഑෍͞ΕΔ
    ίϯςφӡ༻Λ͢Δ
    ‎ Ͳ͏΍ͬͯιʔε؅ཧɾ؀ڥߏங͠Α͏͔ʁ

    View Slide

  5. ߟ͑ͨํ๏
    w [JQϑΝΠϧΛͦͷ··ίϛοτ͓ͯ͘͠
    w ϥΠϒϥϦͷόʔδϣϯ্͕͕ͬͨΒߋ৽͍ͯ͘͠
    w %PDLFSGJMF಺Ͱ[JQΛղౚ͠ɺ഑ஔ͍ͯ͘͠

    View Slide

  6. %PDLFSGJMF
    FROM alpine:latest
    RUN apk add --no-cache --update \
    nginx \
    zip
    COPY ./package.zip /var/www
    RUN cd /var/www && \
    unzip package.zip && \
    chown -R nginx:nginx package && \
    rm package.zip
    RUN mkdir -p /run/nginx
    EXPOSE 80
    CMD nginx -g "daemon off;"

    View Slide

  7. %PDLFSGJMF
    FROM alpine:latest
    RUN apk add --no-cache --update \
    nginx \
    zip
    COPY ./package.zip /var/www
    RUN cd /var/www && \
    unzip package.zip && \
    chown -R nginx:nginx package && \
    rm package.zip
    RUN mkdir -p /run/nginx
    EXPOSE 80
    CMD nginx -g "daemon off;"

    View Slide

  8. ඍົͳ఺
    w ӡ༻্Ͱ࢖༻͠ͳ͍[JQΛΠϯετʔϧ͍ͯ͠Δ
    w VO[JQ·ΘΓͷॲཧ͕௕ͯ͘ݟͮΒ͍
    w ιʔεΛ഑ஔͯ͠αʔόΛىಈ͍͚ͨͩ͠ͳͷʹ௕͍

    View Slide

  9. ϚϧνεςʔδϯάϏϧυ✨

    View Slide

  10. ϚϧνεςʔδϯάϏϧυ
    w Ұ࣌తͳ%PDLFSΠϝʔδΛ࡞੒ͯ͠ɺ%PDLFSGJMF಺Ͱ࢖༻
    Ͱ͖Δ
    w ؔ৺ࣄͷ෼཭΍ॏෳͷ࡟আʹޮՌత
    w Ωϟογϡޮ཰΋ྑ͍Β͍͠
    w ʮ%PDLFSGJMFΛॻͨ͘ΊͷϕετϓϥΫςΟεʯΛࢀߟʹ͠
    ͯͶ

    View Slide

  11. %PDLFSGJMF શମ

    FROM alpine:latest as package
    RUN apk add --no-cache --update \
    zip
    COPY ./package.zip /opt
    RUN cd /opt && \
    unzip package.zip
    FROM alpine:latest
    RUN apk add --no-cache --update \
    nginx
    COPY --from=package --chown=nginx:nginx /opt/package /var/www/package
    RUN mkdir -p /run/nginx
    EXPOSE 80
    CMD nginx -g "daemon off;"

    View Slide

  12. %PDLFSGJMF શମ

    FROM alpine:latest as package
    RUN apk add --no-cache --update \
    zip
    COPY ./package.zip /opt
    RUN cd /opt && \
    unzip package.zip
    FROM alpine:latest
    RUN apk add --no-cache --update \
    nginx
    COPY --from=package --chown=nginx:nginx /opt/package /var/www/package
    RUN mkdir -p /run/nginx
    EXPOSE 80
    CMD nginx -g "daemon off;"
    Ұ࣌తͳΠϝʔδ
    ຊମ

    View Slide

  13. %PDLFSGJMF QBDLBHF

    FROM alpine:latest as package
    RUN apk add --no-cache --update \
    zip
    COPY ./package.zip /opt
    RUN cd /opt && \
    unzip package.zip

    View Slide

  14. %PDLFSGJMF CPEZ

    FROM alpine:latest
    RUN apk add --no-cache --update \
    nginx
    COPY --from=package --chown=nginx:nginx \
    /opt/package /var/www/package
    RUN mkdir -p /run/nginx
    EXPOSE 80
    CMD nginx -g "daemon off;"

    View Slide

  15. ·ͱΊ
    w ಡΈ΍͘͢ͳͬͨ
    w ʮύοέʔδͷ؅ཧ VO[JQ
    ʯͱʮαʔόͷઃఆʯΛ

    ෼͚ͯॻ͚ΔΑ͏ʹͳͬͨ
    w %PDLFS3FHJTUPSZ͕࢖͑Ε͹ɺύοέʔδ؅ཧ͸

    ผΠϝʔδͰ؅ཧͯ͠΋0,
    FROM /url/to/registry/ as package
    FROM alpine:latest
    RUN apk add …

    View Slide

  16. ͓·͚
    w $PNQPTFSͷΠϯετʔϧɺωοτͰௐ΂ΔͱΈΜͳDVSM͠
    ͯؤுͬͯ·͕͢ɾɾɾ
    RUN curl -sS https://getcomposer.org/installer | php
    RUN mv composer.phar /usr/local/bin/composer

    View Slide

  17. ͓·͚
    w ࠓճͷ಺༰Λ࢖͑͹ɺ؆୯ʹಋೖόʔδϣϯ؅ཧͰ͖·͢
    Ͷ
    FROM composer:{version} as composer
    FROM alpine:latest

    COPY --from=composer /usr/bin/composer /usr/bin/composer

    View Slide