しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Docker

M2 MacBook Air で Dev Container を使った Azure Functions 開発が行えない問題を直す

これまでも何度か取り上げた Azure Functions の開発を Dev Container / GitHub Codespaces で行う方法ですが、公開している Dev Container Template が結構使われているみたいで作って良かったという気持ちです。GitHub Codespaces を使う場合は例外ですが …

Azure Functions Linux の Custom Image でベースとして利用可能な Docker Image について

Azure Functions の Linux では標準で用意されている Docker Image をベースにして、独自に必要なパッケージをインストールして実行環境をカスタマイズ出来るようになっています。ドキュメントでは Custom Image と呼ばれていますが、Azure Portal から Azur…

Windows Server 2019 時代の Windows Containers を使ったアプリケーション移行

Kubernetes が 1.14 から Windows Server 2019 をサポートするようになり、周辺ツールやサービスも整ってきた現状、今年こそ Windows Containers がぼちぼち使われるようになるのではないかと思っています。と言っても新規開発は ASP.NET Core を推奨してい…

Web App for Containers と ACR Tasks が Windows Server 2019 にアップデートされていた

久し振りに Web App for Containers (Windows) を作成してみたら、ホスト OS が Windows Server 2019 にアップデートされてることに気が付きました。正式リリースではないですがアップデートはほぼ確実でしょう。これで大幅にサイズが削減された Docker Imag…

Windows 10 で Process Isolation を使う時の注意点など

Docker Engine 18.09.1 と Windows 10 Version 1809 の組み合わせ時に Process Isolation *1 が使えるようになっています。Windows Server Containers は Hyper-V Containers より軽量なので助かります。早速弄っていましたが、クライアント OS で使う場合に…

Windows Server 2019 の Docker Image と MCR への移行

停止されていた Windows Server 2019 の公開がようやく再開されました。同時に Windows Server 2019 ベースの Server Core / Nano Server イメージも公開が再開されています。これでようやく LTSC なバージョン上でサイズが縮小された Docker Image を使う準…

Windows Containers でも Application Insights でパフォーマンスカウンターを読めるようにする

デフォルトのままで Windows Containers で動かすアプリに Application Insights をインストールすると、パフォーマンスカウンターの値が正しく取れない問題があります。実際に実行すると CPU やメモリ周りの値が Quick Pulse で取れてません。アプリケーシ…

Multi-arch 時代の Windows Containers 関連イメージの扱い

Windows Containers を使っていて非常に悩ましいのが OS バージョンですが、最近は Multi-arch が使われているのでホスト OS のバージョンから適切なものを自動で利用してくれます。Multi-arch の詳細は Docker 公式ブログを読めば大体理解できるはずです。…

ACR Build を使って ASP.NET アプリケーションの Docker Image をビルドする

ついに App Service での対応によって Windows Containers を利用する機運が個人的に高まってきたので、前から気になっていた ACR Build を使って ASP.NET 向けのイメージをビルドしてみました。VSTS や AppVeyor でも Docker Image を作ることは出来ますが…

Windows Server Version 1709 から Windows Server Containers のバージョン要件が変更されていた

これまで何回か Windows Containers を触ってきましたが、大体は Windows Server Containers の場合はバージョンを合わせるのが面倒なので、Hyper-V Containers を使おうという方向に落ち着いてました。ビルド番号が異なる場合には起動がブロックされますが…

.NET Framework / .NET Core 向け Docker Image のリポジトリが変更された話

多分 .NET Framework 4.7.2 と .NET Core 2.1 のリリースを狙ったタイミングだと思っているのですが、この 2 つを利用するための公式 Docker Image のリポジトリが変更されています。地味に同じようなのにイメージが異なっていた .NET 系の Docker Image が…

Windows Server Insider Preview Build 17079 で Server Core Container のサイズが更に削減

Windows Containers を使って ASP.NET アプリケーションの Dockernize を行う上で最大の問題となる、Server Core な Docker Image のサイズが 17079 で更に削減されました。ブログでは 30% 削減されたと書いてありますが、実際のサイズはダウンロード時が 1.…

ASP.NET 4.7.1 の Configuration Builder を使って Docker での運用を楽にしたい

最近は ASP.NET に Docker での運用を意識した機能が入り始めていて、早く Server Core の Docker Image が 1GB ぐらいにならないかと思い続ける日々です。とはいえ、現時点でも Server Core を使った ASP.NET の Dockernize は十分に可能なので、Configurat…

Nano Server で ASP.NET Core アプリケーションを実行する

これまでに ASP.NET Core は大体 App Service か Linux の Docker でしか動かしておらず、Nano Server を使ったことがなかったので試しておくことにしました。といっても、難しいことはなく Visual Studio で ASP.NET Core プロジェクトを作る時に Windows …

Windows Server Insider Preview Build 17035 で Windows Containers 周りが改善

ちょっと前に次の Semi-Annual Channel 向けの Windows Server Inside Preview がリリースされてました。ぶちぞう RD が空リプしてましたが、6 時とか完全に寝てるので気が付きません。Announcing Windows Server Insider Preview Build 17035 https://t.co/…

Windows Server Version 1709 で Docker と Windows Containers を使ってみる

自宅の検証用 Windows Server 2016 を Version 1709 にアップグレードしたので、例によって Docker 周りで気になる部分だけまとめておくことにします。Tech Summit は Version 1709 ベースで話したいですし。Windows Server Blog や Azure Blog では Azure M…

App Service on Linux を本番環境で運用する際の注意点

最近は App Service on Linux を使った仕事もしていたので、本番環境で使う場合の注意点を簡単にまとめておきます。地味にはまるポイントが多くて忘れそうなので、ほぼ自分用のメモですね。 2 コア以上のインスタンスを選ぶ 1 core 1.75GB の B1 / S1 インス…

App Service on Linux と Azure Container Registry を使ったデプロイを試したら罠が多かった話

App Service on Linux が GA する少し前に Azure Container Registry を使った自動デプロイが、Azure Portal から簡単に設定できるようになったとブログに上がってました。Azure Portal から Continuous Deployment を On にすると Webhook の設定をしてくれ…

App Service on Linux と Web App for Containers が GA したらしい

発表も突然なら GA も突然な App Service on Linux です。てっきり Ignite 合わせかと思っていましたが、特に何かあるタイミングではない今日に発表とは驚きました。とはいえ、何か機能が追加されたわけではなく GA したという発表だけのようです。同時に謎…

App Service on Linux に関する最近のアップデートなど

最近は忙しかったのと Windows Containers ばかり弄っていたので遠ざかってましたが、そろそろ App Service on Linux は GA が近くなってきた気がしますね。リージョンは毎週のように増えていますし。というわけで個人的なまとめを少しだけ。気になる部分は…

Docker for Windows Server の Default Isolation を Hyper-V に変更する

Windows Server 2016 に Docker EE をインストールすると、デフォルトでは Windows Server Containers が使われるようになっています。docker info を実行すると Default Isolation が process になっていることが分かりますね。Windows Server Containers …

Windows Server Insider Preview を使って Server Core と Nano Server の Insider Image を試す

あまり Windows Server Insider Preview に関しては興味がなかったのですが、たまたま見つけた Insider 版の Windows Server Core と Nano Server の Docker Image がかなり最適化されていたので、実際に試してみたくなりました。地味にはまりましたが何とか…

Azure 上の Visual Studio 2017 を使って Windows Containers サポートを試してみた

手持ちの MacBook Pro だと Hyper-V を使った時の動作に不安があったので、最近 Nested Virtualization に対応した Dv3 / Ev3 インスタンスが追加された Azure 上で試すことにしました。Dv3 / Ev3 については、既にぶちぞう RD が書いてるので、そっちを読む…

App Service on Linux が Japan East で利用可能になりました

これまで Southeast Asia が日本から一番近いリージョンでしたが、ついに Japan East に App Service on Linux がデプロイされたので、レイテンシを気にせず使えるようになりました。今までは Japan East / West は割と後回しでしたが、今回は早期にデプロイ…

クラスタ不要で柔軟な Docker ホスティングが行える Hyper.sh を試してみた

Hyper.sh - Clusterless Docker Hosting Hyper.sh の特徴とメリット 個人的にはクラスタ不要で Docker が使えるというだけでかなりのメリットになるのですが、それ以外にもいろいろと特徴とメリットがあったので少しだけ書いておきます。 Docker と同じコマ…

Docker for Windows Server 2016 のアップデートを行う方法

Windows Server 2016 への Docker インストールは、PowerShell を使って結構簡単に出来るのですが、アップデート方法をこれまであまり見たことがありませんでした。何回か書いた気はしますが、インストールは以下のコマンドを実行するだけです。 Install-Mod…

App Service on Linux の最新アップデートと de:code で久し振りにセッションをする話

先週の Build 2017 のキーノートではさらっと触れられてたぐらいですが、かなり大規模なアップデートが行われました。詳細は Azure Blog に AJ 氏が書いてます。AJ 氏とは先月に品川の Microsoft で会って少し話をしました。その来日時の記事が公開されてま…

AppVeyor を使って ASP.NET MVC アプリケーションの Docker Image を自動で作成してみる

前に AppVeyor の Windows Server 2016 と Docker 対応について調べたので、今回は実際に ASP.NET MVC アプリケーションをビルドして、Docker Image の作成までを行ってみます。やることは CircleCI と Docker を使って App Service on Linux への CI/CD を…

AppVeyor が Windows Server 2016 に対応したので Docker を使うための下調べをする

2 か月ほど前になりますが、AppVeyor が Visual Studio 2017 と Windows Server 2016 が使えるワーカーイメージの提供を開始しました。AppVeyor に限らず Windows Server 2016 対応はどのサービスも遅い気がしますね。"Visual Studio 2017" image with VS 20…

App Service on Linux を Heroku っぽく使う Runtime Stack を作成してみた

App Service on Linux のカスタム Docker Image を利用していると、やっぱり Heroku のように foreman を使ったプロセス管理が使いたくなってきました。Heroku では Procfile をルートに用意しておくと、いい感じにランタイムが読み込んで実行してくれます。…