やっとこさ動きました。青木さんありがとう。
自分でもやってみました。
・事前準備: Docker on Ubuntu なインスタンス (Azure プレビューポータルから作成)
開発環境は一応Windows上のVisual Studio 2015 CTP5です。
新規プロジェクトで普通にASP.NET 5 Starter Web テンプレートを選択します。
できあがったプロジェクトはごくごく普通なMVCなWebアプリケーションです。とりあえずViewなど適当にいじってデバッグしてみて、こいつをDocker on Ubuntuで動作するようにしましょう。
といってもホスト環境に合わせてproject.jsonにKestrelを追加するだけなのですが、それだけだとUbuntu上で kpm restore する際に
INFO[0157] The command [/bin/sh -c kpm restore] returned a non-zero code: 1
とかエラーになって止まります。まぁその他いろいろエラーでてもこんな感じでさっぱり詳細わからない(※調べ方把握できてないだけ)ので困りましたが。
で、修正したproject.jsonはこちら。
{ /* Click to learn more about project.json http://go.microsoft.com/fwlink/?LinkID=517074 */ "webroot": "wwwroot", "version": "1.0.0-*", "dependencies": { "EntityFramework.SqlServer": "7.0.0-beta2", "EntityFramework.Commands": "7.0.0-beta2", "Microsoft.AspNet.Mvc": "6.0.0-beta2", /* "Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-beta2", */ "Microsoft.AspNet.Diagnostics": "1.0.0-beta2", "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta2", "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta2", "Microsoft.AspNet.Security.Cookies": "1.0.0-beta2", "Microsoft.AspNet.Server.IIS": "1.0.0-beta2", "Microsoft.AspNet.Server.WebListener": "1.0.0-beta2", "Microsoft.AspNet.StaticFiles": "1.0.0-beta2", "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta2", "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta2", "Microsoft.Framework.Logging": "1.0.0-beta2", "Microsoft.Framework.Logging.Console": "1.0.0-beta2", "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta1", "Microsoft.CodeAnalysis.CSharp": "1.0.0-beta2", /* <- 追加 */ "Kestrel": "1.0.0-beta2", /* <- 追加 */ "Microsoft.AspNet.Hosting": "1.0.0-beta2" /* <- 追加 */ }, "commands": { /* Change the port number when you are self hosting this application */ "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000", "gen": "Microsoft.Framework.CodeGeneration", "ef": "EntityFramework.Commands", "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004" /* <- 追加 */ }, "frameworks": { "aspnet50": { }, "aspnetcore50": { } }, "exclude": [ "wwwroot", "node_modules", "bower_components" ], "packExclude": [ "node_modules", "bower_components", "**.kproj", "**.user", "**.vspscc" ], "scripts": { "postrestore": [ "npm install" ], "prepare": [ "grunt bower:install" ] } }
依存関係にCodeAnalysis.CSharpとKestrel、AspNet.Hostingを追加してます。あとCommandsにKestrelの設定(とバインドするポート番号など)を追記。
あとは青木さんが作ってくれたDockerfileを元にコンテナ作るだけです!
kpm restore で npmパッケージとかも復元する必要があるので、node.jsも入れてたり、microsoft/aspnet:1.0.0-beta2を指定しているあたりが特徴です。
あと注意点はproject.jsonがあるフォルダというかWebアプリケーションとして公開するところをWORKDIRに指定して実行しましょうというところでしょうか、、、
docker build するとkpm restore走って問題なく成功すればOKです
あとは実行するだけです。
長かった。。変なIssueをaspnet-dockerに登録せずに済みました。