最新の ASP.NET Coreの状況どうなっているのかなあということでdockerイメージで試してみました。あくまでdocker上での動作なので、RHEL上での.NET対応とは別の話です。
dockerをセットアップする
まずはdockerのドキュメントに従ってセットアップします。
実際にはこんな感じ
# yum update # tee /etc/yum.repos.d/docker.repo <<-EOF [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7 enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF # yum install docker-engine # systemctl enable docker # systemctl start docker
あとはドキュメントに従ってdockerを軽く動かしてみてもいいでしょう
ASP.NET Coreのdockerイメージをサンプルコードで起動する
ASP.NET Coreのコンテナイメージはここにあります。
https://hub.docker.com/r/microsoft/aspnet/
RC1-finalとRC1-update1があって、どっちが最新なんだという状態なんですが*1、RC1-update1がより新しいです。
サンプルプロジェクトは書いてもいいですが、ASP.NETのGitHubにも公開されています。
# yum install git # git clone https://github.com/aspnet/Home.git aspnet-Home # cd aspnet-Home/samples/1.0.0-rc1-update1/HelloWeb/ # vi Dockerfile # docker build -t myapp . # docker images # docker run -t -d -p 80:5004 myapp
以前のリポジトリ構造にはなかったのですが samples の下にバージョン?ごとのディレクトリが分かれています。この中のHelloWebを選びます。 Dockerfileもあるのですが、イメージをcoreclr ベースのものに変更してみました。
FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr COPY . /app WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5004 ENTRYPOINT ["dnx", "-p", "project.json", "web"]
ENTRYPOINT
も以前はkestrel
と指定していた気がしますが、web
になっています。
これでdockerを動かしているRHELの80番ポートに接続すればいつもの画面が表示されるはずです。
あと中身ですが、dnvm は 1.0.0-rc2-15546、dnxとdnuは 1.0.0-rc1-16231 になってました。
なお最初にちょっと書いた、RHELでの.NET対応の最新情報については、Buildでの概要はこちらのエントリにあります。
また、4/12 12pm - 2pm EDT、JSTだと4/13 1:00AM からRHEL上の.NETについてなにかしらWebinarが行われる予定になっています。詳細は下記のリンクからRed Hat Developers
に登録・ログインして、確認・申し込みしてください。
Red Hat Developers Topic: .NET
*1:そもそもRCとはという疑問もある