ASP.NET 5(現ASP.NET Core)を追っている方々には旧聞ですが、Kコマンド群がdnvmやら何やらになった(C#でのクロスプラットフォームなコマンドラインツール開発に良いかもと考えながら最近のASP.NET 5事情を調べた)と思ったら半年も経たないうち(2015年のうち)にまた変わりました。
公式の導入手順を見ると、従来通りのコマンド群だけでなくdotnet newなる環境新規作成コマンドが増えたようです。
ひとまずさっと試してみましょうか。
しばし待って完了です。
コンテナ環境内でチュートリアルに従ってnewをおこないますが、なかなか終わりません。気持ち的には一瞬で終わってほしいコマンドで、特にprogressが表示されるわけでもないので不安になります。
dotnet restoreなどを叩いても同様(VMware FusionのVMがシステム時間を食い尽くして応答しなくなる)なので、何かおかしそうです。
ひとまず環境情報を書いておきましょう。
なお、対象のビルドは現時点でlatestタグの打たれているhttps://hub.docker.com/r/microsoft/dotnet/builds/btl9c2jpeyehe89ivzdvfcr/です。
unameの結果は
はい。
固まりました。
docker killでも殺せません。
あと、チュートリアルとしてはDockerコンテナ作成時に--rmオプションを付けて終了即削除にしておいたほうが何かと楽(Dockerをよく知らない状態だと、大量にたまってきたコンテナの残骸に気付かず厄介事になりやすい)かなと思いました。感想ですが。
公式の導入手順を見ると、従来通りのコマンド群だけでなくdotnet newなる環境新規作成コマンドが増えたようです。
ひとまずさっと試してみましょうか。
Docker環境でサクッと試・・・せない
さっそく公式Dockerイメージを利用して簡単に使ってみます。環境はいつもどおり、MacBook 12"上のdocker-machine(+VMware Fusion)です。$ docker run -it microsoft/dotnet:latest Unable to find image 'microsoft/dotnet:latest' locally latest: Pulling from microsoft/dotnet 33f2093de5ed: Pull complete e9e1e0eafa26: Pull complete 9b3cff7cff0e: Pull complete 3bf9da1b9bd0: Pull complete 0944fb75f38c: Pull complete e81712b127cd: Pull complete 93e08f996847: Pull complete 86a4030bdcde: Pull complete Digest: sha256:5128c18cc89d9bb8b3619f3ad3437d173d1d311ea317268a8398be140bf48096 Status: Downloaded newer image for microsoft/dotnet:latest
root@2afc10bf759a:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@2afc10bf759a:/# mkdir hello root@2afc10bf759a:/# cd hello/ root@2afc10bf759a:/hello# ls root@2afc10bf759a:/hello# dotnet new Created new C# project in /hello.
状況
15分ぐらい待ち、諦めてコンテナごとdocker killを試みるも反応なし。結局docker-machine stopコマンドでホストVMごと停止して再起動しました。dotnet restoreなどを叩いても同様(VMware FusionのVMがシステム時間を食い尽くして応答しなくなる)なので、何かおかしそうです。
ひとまず環境情報を書いておきましょう。
$ docker version Client: Version: 1.9.1 API version: 1.21 Go version: go1.5.1 Git commit: a34a1d5 Built: Sat Nov 21 00:49:19 UTC 2015 OS/Arch: darwin/amd64 Server: Version: 1.9.1 API version: 1.21 Go version: go1.4.3 Git commit: a34a1d5 Built: Fri Nov 20 17:56:04 UTC 2015 OS/Arch: linux/amd64
Linuxホスト上で実行してみる
原因を切り分けるために適当なコンテナホスト上で作業をしてみます。なお、対象のビルドは現時点でlatestタグの打たれているhttps://hub.docker.com/r/microsoft/dotnet/builds/btl9c2jpeyehe89ivzdvfcr/です。
unameの結果は
3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
$ docker version Client: Version: 1.9.1 API version: 1.21 Go version: go1.4.2 Git commit: a34a1d5 Built: Fri Nov 20 12:59:02 UTC 2015 OS/Arch: linux/amd64 Server: Version: 1.9.1 API version: 1.21 Go version: go1.4.2 Git commit: a34a1d5 Built: Fri Nov 20 12:59:02 UTC 2015 OS/Arch: linux/amd64
$ docker run -it microsoft/dotnet:latest Unable to find image 'microsoft/dotnet:latest' locally latest: Pulling from microsoft/dotnet 33f2093de5ed: Pull complete e9e1e0eafa26: Pull complete 9b3cff7cff0e: Pull complete 3bf9da1b9bd0: Pull complete 0944fb75f38c: Pull complete e81712b127cd: Pull complete 93e08f996847: Pull complete 86a4030bdcde: Pull complete Digest: sha256:5128c18cc89d9bb8b3619f3ad3437d173d1d311ea317268a8398be140bf48096 Status: Downloaded newer image for microsoft/dotnet:latest root@880ccf5e3177:/# mkdir hello_world root@880ccf5e3177:/# ls bin dev hello_world lib media opt root sbin sys usr boot etc home lib64 mnt proc run srv tmp var root@880ccf5e3177:/# cd hello_world/ root@880ccf5e3177:/hello_world# dotnet new Created new C# project in /hello_world.
docker killでも殺せません。
結果
issue作りました。Docker 1.10系を使えばよさそうな雰囲気ですね。雑感
せっかく関連コマンド群を1つに集約したのだから、Docker環境内へdotnetコマンドを隔離しつつホスト側環境のファイルをいじるのをデフォにしたいところですね。本来はこっちの話を書きたかったのですが、存外まともに動いていなかったので1回休みの格好です。あと、チュートリアルとしてはDockerコンテナ作成時に--rmオプションを付けて終了即削除にしておいたほうが何かと楽(Dockerをよく知らない状態だと、大量にたまってきたコンテナの残骸に気付かず厄介事になりやすい)かなと思いました。感想ですが。
0 件のコメント:
コメントを投稿