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/

E5eb221d34d4ffbe973f8542b4c3a00e?s=128

Akira Onishi (IBM)
PRO

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 ίϯςφΞϓϦͷ Ϗϧυɺެ։ɺσϓϩΠ
  2. ࣗݾ঺հ 1SPQFSUZ 7BMVF ࢯ໊ େ੢ জ 5XJUUFS-JOLFE*O POJBL *5ۀքྺ ೥໨

    ௚ۙͷ৬ྺ Microsoft ೥ *#.೥໨ )BTI5BH ͍͍Ͷ͐੩Ԭੜ׆ ࠲ӈͷ໏ ౿·Εͯ΋ͳ্ཱ͓͕ͪΔಓͷ૲ Α͘࢖͏ٕ ೴಺ม׵Ͱࣗ෼ΛϙδςΟϒʹ IUUQTXXXGBDFCPPLDPNBLJSBPOJTIJ 'BDFCPPLʮ͓ʹ͋͘ʯͰݕࡧ
  3. ୈճͷൣғ Windows ίϯςφͷ։ൃ͔Β࣮ߦɺશମ૾ Windows ίϯςφΞϓϦͷϏϧυɺެ։ɺ σϓϩΠ Windows ίϯςφ %PKP४උฤʹࢀՃ͞Εͨํ Λ૝ఆͯ͠࿩ΛਐΊ͍͖ͯ·͢ɻ

    IUUQTWJEFPJCNDPNSFDPSEFE
  4. Windows ίϯςφ http://aka.ms/windowscontainers ೥݄ʹൃද ϗετ04 Windows Server 2016 Windows Server

    2019 Windows Server 2022 Windows 10 Windows 11 ࠔͬͨ࣌͸ɺ ඞͣެࣜυΩϡϝϯτΛ ࢀর͠·͠ΐ͏
  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 (仮想マシン)
  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 (仮想マシン) ビルド 公開 デプロイ
  7. ΞϓϦͷܧଓతͳվળͱల։ ͜ͷαΠΫϧΛ܁Γฦ͢ ビルド テスト 公開 デプロイ

  8. Visual Studio ͷ Docker αϙʔτ IUUQTEPDTNJDSPTPGUDPNKBKQWJTVBMTUVEJPDPOUBJOFSTPWFSWJFX WJFXWT ඞਢίϯϙʔωϯτ Docker Desktop

    for Windows Visual Studio 2022 対応プロジェクト ASP.NET ASP.NET Core コンソール (.NET Framework, .NET Core)
  9. Visual Studio ͷϏϧυߏ੒ [ビルド]-[構成マネージャー] Debug 構成を選んだ場合は、 DEBUG 変数が定義され、 最適化コードは出⼒されない

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

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

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

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

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

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

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

    [発⾏]をクリックして、イメージを Docker Hub に Push しましょう
  17. ίϯςφΠϝʔδͷެ։ #6 ローカル環境から、Docker Hub へ コンテナ イメージが送信されます 所要時間は、お使いのPCのスペック、 上りネットワークの帯域幅に依存します 忍耐強く待ちましょう

    2回⽬以降は、構成を⼤きく変えない 限りは、アプリの最新版を置き換える 処理となります
  18. ίϯςφΠϝʔδͷެ։ #7 「Docker イメージが正常にプッシュされました」が表⽰されていれば、正しく公開できています https://hub.docker.com/repository/docker/oniak3/hellowcon01

  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Πϝʔδ͕ਖ਼ৗʹϓογϡ͞Ε·ͨ͠ ビルド 公開 [発⾏]は、[ビルド]と[公開(プッシュ)]を順に実⾏するのと同じ
  20. ίϯςφΞϓϦͷσϓϩΠ Release Buildが 公開されている docker run --name wcon --rm -it

    -d -p 8000:80 oniak3/hellowcon01:latest start http://localhost:8000 注: Port 8080は使っていないので 「このページを表⽰できません」
  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 (仮想マシン) ビルド 公開 デプロイ
  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
  23. ࢀߟίϯςφΠϝʔδͷൃߦɺ$-* docker push <໊લ>:<λά> https://docs.docker.jp/engine/reference/commandline/push.html

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

  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の商標または登録商標です。