つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

AzureにデプロイしているASP.NET Coreの起動時にエラーが発生したときに読むべきドキュメント

多少限定的な状況下ではありますが、Microsoft AzureにデプロイしているASP.NET Coreの起動時にエラーが発生したときには、こちらのドキュメントを参照するとよいです。

docs.microsoft.com

HTTP 502.5エラーとHTTP 500エラーの2種類あり、それぞれ確認する項目が異なります。

個人的にはASP.NET Coreの起動時にエラーが発生する原因は以下のように考えています。状況を切り分けるポイントというところです。

  • Program.cs または Startup.cs での処理に不備がある
  • Startup.cs で参照している外部リソース(DBなど)に障害が起きている
  • ASP.NET CoreをホストしているWebサーバーそのものに障害が起きている
  • クラウドプラットフォームに障害が起きている

細かな状況や原因は、上記ドキュメントの手法に従ってログを確認して特定することになります。

Azureにデプロイしている場合、Visual Studioからリモートデバッグを行うことができるので、これでさくっと原因特定しちゃいましょう。

docs.microsoft.com

OSS Gate Fukuokaにサポーターとして参加して感じたこと #oss_gate

ブログを書くまでがOSSってことで(謎

2019年1月15日と17日の2日間で開催されたOSS Gate Fukuokaという勉強会に参加してきました。
もともと「OSS Gate」というイベントは東京で開催されているみたいです。

oss-gate-fukuoka.connpass.com

コンセプトとしては

オープンソースソフトウェア(OSS)の開発に参加する」を実際に体験するためのワークショップです。

なので、自分もそれをお手伝いできればいいなぁと思い、サポーターとして参加しました。
ちなみにOSSを体験したい方は「ビギナー」という呼称です。

なにをやった?

基本的にビギナー2人とサポーター1人でチームを組み、ビギナーがテーマにしたOSSに対して、どのような方法でコントリビュート(貢献)できるか、それを実現するための進め方などを手伝い、ゴールの達成をサポートする役割でした。

とにかく「手を動かして慣れよう」という方針なんだろうなと感じました。
ビギナーはOSS Gateのリポジトリにメモ代わりのIssueを作り、アウトプットする習慣をつけるように進んでいきました。

github.com

意外と難しい

両日とも参加して感じた難しさを雑に書いてみます。決して批判ではなく、個人的な感想です。

  1. ビギナー:テーマにするOSSを決めることが難しい(だろう)
  2. ビギナー:なにをコントリビュートしてよいかを決めることが難しい(だろう)
  3. サポーター:どこまでアドバイスしてよいか難しい
  4. サポーター:ビギナーにモチベーションを保ってもらう盛り上げ方が難しい

技術力の大小ではなく、単に慣れの問題かなと思います。

学びもあった

仕事や趣味のなかでGitやGithubを使うことが多く、IssueやPull Requestのある生活に慣れているなかで、ビギナーの方が悩むポイントを知ることができ、どのようにサポートすればよいのかを考える良い機会となりました。

また単純に、初耳のOSSがあったので収穫です。例えばこんなの。

github.com

github.com

github.com

github.com


第1回目の開催でしたがとても楽しめました。次回の開催があれば、また何かしら手伝えたらいいなと思います。

Dockerhubのmicrosoft/dotnetに公開されている.NET Coreのイメージのタグの役割を理解する

こちらの記事を読んでいて、.NET CoreのDockerイメージについての説明が載っていたので訳しつつ整理してみます。

blogs.msdn.microsoft.com

Dockerhub

.NET Coreのイメージが管理されているのはmicrosoft/dotnetというリポジトリになります。

hub.docker.com

.NET Coreイメージのタグのネーミングルール

[version]-[kind]-[os]-[chip] という構成でタグ名がつけられています。順に説明すると、

  • version : .NET Coreのバージョンを指します。
  • kind : イメージの種類を指します。
    • sdk : .NET Core SDKが入ってます。非プロダクション環境向けに使いましょう。
    • aspnetcore-runtime : .NET CoreランタイムおよびASP.NET Coreランタイムが入っている、ASP.NET Coreアプリケーション向けのイメージです。
    • runtime : .NET Coreランタイムが入っている、.NET Coreアプリケーション向けのイメージです。
    • runtime-deps : オペレーティング システムと .NET Core で必要とされるすべてのネイティブ依存関係が含まれます。自己完結型のアプリケーションを実行する際に使うと良いです。
  • os : ベースイメージのOSを指します。
  • chip : チップセット

その他、下記のドキュメントに細かく説明が記載されています。

docs.microsoft.com

latestタグはどれになる?

記事執筆時点(2019/01/13)では latest タグは 2.2.102-sdk-stretch というタグに割り当てられています。
ただしlatestタグは変わるものなので特別な事情がない限り、使わないことをオススメします。

f:id:tech-tsubaki:20190113155042p:plain