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

WindowsコンテナDojo:第2回 Windowsコンテナアプリのビルド、公開、デプロイ

WindowsコンテナDojo:第2回 Windowsコンテナアプリのビルド、公開、デプロイ

WindowsコンテナDojo:第2回 Windowsコンテナアプリのビルド、公開、デプロイ

https://ibm-developer.connpass.com/event/245494/

Akira Onishi (IBM)

May 12, 2022
Tweet

More Decks by Akira Onishi (IBM)

Other Decks in Programming

Transcript

  1. ೔ຊΞΠɾϏʔɾΤϜגࣜձࣾ
    ςΫϊϩδʔࣄۀຊ෦
    ΧελϚʔɾαΫηε ϓϦϯγύϧɾϚωʔδϟʔ
    ݉ 8JOEPXT$POUBJOFS1PSUJOH1SPHSBNਪਐϦʔμʔ
    େ੢ জ "LJSB0OJTIJ!JCNDPN 5XJUUFS!POJBL

    IUUQTXXXGBDFCPPLDPNBLJSBPOJTIJ
    IUUQTXXXMJOLFEJODPNJOPOJBL
    Windows ίϯςφ %PKP
    ୈճ Windows ίϯςφΞϓϦͷ
    Ϗϧυɺެ։ɺσϓϩΠ

    View full-size slide

  2. ࣗݾ঺հ
    1SPQFSUZ 7BMVF
    ࢯ໊ େ੢ জ
    5XJUUFS-JOLFE*O POJBL
    *5ۀքྺ ೥໨
    ௚ۙͷ৬ྺ Microsoft ೥ *#.೥໨
    )BTI5BH ͍͍Ͷ͐੩Ԭੜ׆
    ࠲ӈͷ໏ ౿·Εͯ΋ͳ্ཱ͓͕ͪΔಓͷ૲
    Α͘࢖͏ٕ ೴಺ม׵Ͱࣗ෼ΛϙδςΟϒʹ
    IUUQTXXXGBDFCPPLDPNBLJSBPOJTIJ
    'BDFCPPLʮ͓ʹ͋͘ʯͰݕࡧ

    View full-size slide

  3. ୈճͷൣғ
    Windows ίϯςφͷ։ൃ͔Β࣮ߦɺશମ૾
    Windows ίϯςφΞϓϦͷϏϧυɺެ։ɺ
    σϓϩΠ
    Windows ίϯςφ %PKP४උฤʹࢀՃ͞Εͨํ
    Λ૝ఆͯ͠࿩ΛਐΊ͍͖ͯ·͢ɻ
    IUUQTWJEFPJCNDPNSFDPSEFE

    View full-size slide

  4. Windows ίϯςφ
    http://aka.ms/windowscontainers
    ೥݄ʹൃද
    ϗετ04
    Windows Server 2016
    Windows Server 2019
    Windows Server 2022
    Windows 10
    Windows 11
    ࠔͬͨ࣌͸ɺ
    ඞͣެࣜυΩϡϝϯτΛ
    ࢀর͠·͠ΐ͏

    View full-size slide

  5. コンテナレジストリ (第2回Dojo)
    docker hub
    開発/テスト環境 (第1回/第3回Dojo)
    Docker Desktop for Windows
    Visual Studio 2022
    ίϯςφͷ։ൃ͔Β࣮ߦ·Ͱͷશମ૾
    コンテナ実⾏環境 (第2回Dojo)
    Windows Server 2019
    マシンA: Windows 10 Pro (Enterprise) / Windows 11 Pro (Enterprise)
    Hyper-V
    イメージの公開
    イメージから
    展開
    マシンB (仮想マシン)

    View full-size slide

  6. コンテナレジストリ (第2回Dojo)
    docker hub
    開発/テスト環境 (第1回/第3回Dojo)
    Docker Desktop for Windows
    Visual Studio 2022
    ࠓ೔ͷ࿩୊
    コンテナ実⾏環境 (第2回Dojo)
    Windows Server 2019
    マシンA: Windows 10 Pro (Enterprise) / Windows 11 Pro (Enterprise)
    Hyper-V
    イメージの公開
    イメージから
    展開
    マシンB (仮想マシン)
    ビルド 公開 デプロイ

    View full-size slide

  7. ΞϓϦͷܧଓతͳվળͱల։
    ͜ͷαΠΫϧΛ܁Γฦ͢
    ビルド
    テスト
    公開
    デプロイ

    View full-size slide

  8. Visual Studio ͷ Docker αϙʔτ
    IUUQTEPDTNJDSPTPGUDPNKBKQWJTVBMTUVEJPDPOUBJOFSTPWFSWJFX WJFXWT
    ඞਢίϯϙʔωϯτ
    Docker Desktop for Windows
    Visual Studio 2022
    対応プロジェクト
    ASP.NET
    ASP.NET Core
    コンソール (.NET Framework, .NET Core)

    View full-size slide

  9. Visual Studio ͷϏϧυߏ੒
    [ビルド]-[構成マネージャー] Debug 構成を選んだ場合は、
    DEBUG 変数が定義され、
    最適化コードは出⼒されない

    View full-size slide

  10. %FCVH3FMFBTFϏϧυʹΑΔίʔυ෼ذ
    Debug ビルドの判定

    View full-size slide

  11. %FCVH3FMFBTFϏϧυɺ࣮ߦ݁Ռͷҧ͍

    View full-size slide

  12. ίϯςφΠϝʔδͷެ։ #1
    プロジェクトの発⾏、[ビルド]メニューから選択 プロジェクトの発⾏、コンテキストメニューから選択
    どちらの⽅法でも [発⾏]画⾯を呼び出します

    View full-size slide

  13. ίϯςφΠϝʔδͷެ։ #2
    [Docker Container Registry] を選択して
    [次へ]をクリック

    View full-size slide

  14. ίϯςφΠϝʔδͷެ։ #3
    [Docker Hub] を選択して、
    [次へ]をクリック

    View full-size slide

  15. ίϯςφΠϝʔδͷެ։ #4
    [ユーザー名] Docker ID、
    [パスワード] Docker IDのパスワード、
    それぞれ⼊⼒したら、[完了]をクリック

    View full-size slide

  16. ίϯςφΠϝʔδͷެ։ #5
    [公開準備が完了しました]と書かれた
    ウィンドウを確認しましょう
    [構成] Release
    [リポジトリ] 指定したDocker IDが
    含まれたURL
    [発⾏]をクリックして、イメージを
    Docker Hub に Push しましょう

    View full-size slide

  17. ίϯςφΠϝʔδͷެ։ #6
    ローカル環境から、Docker Hub へ
    コンテナ イメージが送信されます
    所要時間は、お使いのPCのスペック、
    上りネットワークの帯域幅に依存します
    忍耐強く待ちましょう
    2回⽬以降は、構成を⼤きく変えない
    限りは、アプリの最新版を置き換える
    処理となります

    View full-size slide

  18. ίϯςφΠϝʔδͷެ։ #7
    「Docker イメージが正常にプッシュされました」が表⽰されていれば、正しく公開できています
    https://hub.docker.com/repository/docker/oniak3/hellowcon01

    View full-size slide

  19. ίϯςφΠϝʔδެ։·ͰͷಓͷΓ
    ϏϧυΛ։࢝͠·ͨ͠
    Ϗϧυ։࢝ϓϩδΣΫτ)FMMP8$PO ߏ੒3FMFBTF"OZ$16
    )FMMP8$PO$=6TFST=DPOUBJOFSEFW=TPVSDF=SFQPT=)FMMP8$PO=)FMMP8$PO=CJO=)FMMP8$POEMM
    ެ։ͷ։࢝ϓϩδΣΫτ)FMMP8$PO ߏ੒3FMFBTF"OZ$16
    $=6TFST=DPOUBJOFSEFW=TPVSDF=SFQPT=)FMMP8$PO=)FMMP8$PO=8FC3FMFBTFDPOGJH Λ࢖༻ͯ͠ 8FCDPOGJH Λ PCK=3FMFBTF=5SBOTGPSN8FC$POGJH=USBOTGPSNFE=8FCDPOGJH ʹม׵͠·ͨ͠ɻ
    ύοέʔδԽެ։༻ʹ͢΂ͯͷϑΝΠϧΛ࣍ͷҰ࣌తͳ৔ॴʹίϐʔ͍ͯ͠·͢
    PCK%PDLFSQVCMJTI
    %PDLFSWFSTJPO CVJMEB
    )FMMP8$PO$=6TFST=DPOUBJOFSEFW=TPVSDF=SFQPT=)FMMP8$PO=)FMMP8$PO=CJO=)FMMP8$POEMM
    $=6TFST=DPOUBJOFSEFW=TPVSDF=SFQPT=)FMMP8$PO=)FMMP8$PO=8FC3FMFBTFDPOGJH Λ࢖༻ͯ͠ 8FCDPOGJH Λ PCK=3FMFBTF=5SBOTGPSN8FC$POGJH=USBOTGPSNFE=8FCDPOGJH ʹม׵͠·ͨ͠ɻ
    ύοέʔδԽެ։༻ʹ͢΂ͯͷϑΝΠϧΛ࣍ͷҰ࣌తͳ৔ॴʹίϐʔ͍ͯ͠·͢
    PCK=3FMFBTF=1BDLBHF=1BDLBHF5NQ
    $POOFDUJPO4USJOH ʹΑͬͯ PCK=3FMFBTF=1BDLBHF=1BDLBHF5NQ=8FCDPOGJH ͕ PCK=3FMFBTF=$4"VUP1BSBNFUFSJ[F=USBOTGPSNFE=8FCDPOGJH ʹࣗಈม׵͞Ε·ͨ͠ɻ
    EPDLFSCVJMEG$=6TFST=DPOUBJOFSEFW=TPVSDF=SFQPT=)FMMP8$PO=)FMMP8$PO=%PDLFSGJMFGPSDFSNUIFMMPXDPO MBCFMDPNNJDSPTPGUDSFBUFECZWJTVBMTUVEJPMBCFMDPNNJDSPTPGUWJTVBMTUVEJPQSPKFDUOBNF)FMMP8$PO
    $=6TFST=DPOUBJOFSEFW=TPVSDF=SFQPT=)FMMP8$PO=)FMMP8$PO
    4FOEJOHCVJMEDPOUFYUUP%PDLFSEBFNPO .#

    4UFQ'30.NDSNJDSPTPGUDPNEPUOFUGSBNFXPSLBTQOFUXJOEPXTTFSWFSDPSFMUTD
    B
    4UFQ"3(TPVSDF
    6TJOHDBDIF
    CCCGF
    4UFQ803,%*3JOFUQVCXXXSPPU
    6TJOHDBDIF
    EFEBBD
    4UFQ$01:\TPVSDFPCK%PDLFSQVCMJTI^
    FGDEFB
    4UFQ-"#&-DPNNJDSPTPGUDSFBUFECZWJTVBMTUVEJP
    3VOOJOHJOE
    3FNPWJOHJOUFSNFEJBUFDPOUBJOFSE
    CGGG
    4UFQ-"#&-DPNNJDSPTPGUWJTVBMTUVEJPQSPKFDUOBNF)FMMP8$PO
    3VOOJOHJOCGBD
    3FNPWJOHJOUFSNFEJBUFDPOUBJOFSCGBD
    CCCFD
    4VDDFTTGVMMZCVJMUCCCFD
    4VDDFTTGVMMZUBHHFEIFMMPXDPOMBUFTU

    6TFEPDLFSTDBOUPSVO4OZL UFTUTBHBJOTUJNBHFTUPGJOEWVMOFSBCJMJUJFTBOEMFBSOIPXUPGJYUIFN
    Ϗϧυਖ਼ৗऴྃɺࣦഊɺߋ৽ෆཁɺεΩοϓ
    ެ։ਖ਼ৗऴྃɺࣦഊɺεΩοϓ
    λά MBUFTUؚ͕·ΕΔ %PDLFSΠϝʔδ͕ਖ਼ৗʹϓογϡ͞Ε·ͨ͠
    ビルド 公開
    [発⾏]は、[ビルド]と[公開(プッシュ)]を順に実⾏するのと同じ

    View full-size slide

  20. ίϯςφΞϓϦͷσϓϩΠ
    Release Buildが
    公開されている
    docker run --name wcon --rm -it -d -p 8000:80 oniak3/hellowcon01:latest
    start http://localhost:8000
    注: Port 8080は使っていないので
    「このページを表⽰できません」

    View full-size slide

  21. コンテナレジストリ (第2回Dojo)
    docker hub
    開発/テスト環境 (第1回/第3回Dojo)
    Docker Desktop for Windows
    Visual Studio 2022
    ·ͱΊ
    コンテナ実⾏環境 (第2回Dojo)
    Windows Server 2019
    マシンA: Windows 10 Pro (Enterprise) / Windows 11 Pro (Enterprise)
    Hyper-V
    イメージの公開
    イメージから
    展開
    マシンB (仮想マシン)
    ビルド 公開 デプロイ

    View full-size slide

  22. ࢀߟίϯςφͷϏϧυɺ$-*ʹΑΔ࣮ߦ
    docker build -f Dockerfile ..
    ·ͨ͸
    MSBuild <ϓϩδΣΫτ໊>.csproj /t:ContainerBuild /p:Configuration=Release
    https://docs.microsoft.com/ja-jp/visualstudio/containers/container-build?view=vs-2022#building-from-the-command-line

    View full-size slide

  23. ࢀߟίϯςφΠϝʔδͷൃߦɺ$-*
    docker push <໊લ>:<λά>
    https://docs.docker.jp/engine/reference/commandline/push.html

    View full-size slide

  24. ࢀߟίϯςφΞϓϦͷσϓϩΠ
    docker pull ໊લλά

    View full-size slide

  25. ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報
    提供の⽬的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助⾔を意図したものではなく、またそのような結果を⽣むも
    のでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明⽰または暗
    ⽰にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害
    が⽣じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかな
    る保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したもので
    もなく、またそのような結果を⽣むものでもありません。
    本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗⽰
    するものではありません。本講演資料で⾔及している製品リリース⽇付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもっ
    ていつでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講
    演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が⽣じると述べる、または暗⽰すること
    を意図したものでも、またそのような結果を⽣むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使⽤し
    た測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラ
    ミングの量、⼊出⼒構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、
    個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。
    記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として⽰された
    ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
    IBM、IBM ロゴ、ibm.com、IBM Cloud、IBM Cloud Paksは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他
    の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、
    www.ibm.com/legal/copytrade.shtmlをご覧ください。
    Microsoft, Windows, Windows Server, .NET Framework, .NET, .NET Coreは、Microsoft Corporationの商標または登録商標です。

    View full-size slide