読者です 読者をやめる 読者になる 読者になる

ASP.NET Core アプリケーションを Docker で動かす

.net docker

yo aspnet で作成したプロジェクトには Dockerfile が含まれているので、 ASP.NET Core アプリケーションを Docker で動かすこともできる。

ただ、2016/07/25 時点では Dockerfile に手直しが必要。 そのままだと docker build でコケる。 といっても apt-get-y オプションを追加するだけだけど。 修正した Dockerfile がこちら。

FROM microsoft/dotnet:latest

RUN apt-get update && apt-get install -y sqlite3 libsqlite3-dev

COPY . /app

WORKDIR /app

RUN ["dotnet", "restore"]

RUN ["dotnet", "build"]

RUN ["dotnet", "ef", "database", "update"]

EXPOSE 5000/tcp

ENTRYPOINT ["dotnet", "run", "--server.urls", "http://0.0.0.0:5000"]

Docker は Docker for Mac をインストールして使う。 純正の仮想環境 xhyve を使うので VirtualBox 不要なのが嬉しい。

docs.docker.com

Dockerfile が置いてある場所で

$ docker build -t tnakamura/helloaspnetcore:1.0 .

を実行しイメージを作成。

$ docker run -it -p 5000:5000 --name helloaspnetcore tnakamura/helloaspnetcore:1.0

を実行するとコンテナが立ち上がる。

Safarilocalhost:5000 にアクセスすると

f:id:griefworker:20160721231540p:plain

ASP.NET Core MVC おなじみの画面がちゃんと表示された。

.NET Core で開発する環境を MacBook Pro に構築

.net

.NET Core と ASP.NET Core が RTM になった。 RTM になったら本気出す、って言ったので行動しないといけないな。 有限実行。 まずは家の MacBook Pro で、開発環境を作り直すところから始めよう。

まずは Homebrew で OpenSSL の最新版を先にインストールしておく。

$ brew update
$ brew install openssl
$ brew link --force openssl

.NET Core の公式サイトから、Mac 用のインストーラーをダウンロードして実行。

.NET - Powerful Open Source Development

これだけで、エディタと dotnet コマンドを使って開発できるようにはなった。

ただ、Hello World に毛が生えたような超単純なアプリならともかく、ちょっと規模の大きいアプリを作るとなると、 これだけではツライ。 特に ASP.NET Core で Identity を使うとき、 認証周りの定型コードを自分で書くとか面倒この上ない。

Visual Studio でプロジェクトを新規作成するときみたいに、テンプレートからプロジェクトを生成できるようにしたい。 そこで yo の出番。

yo を動かすためには Node が必要なので、Node から順にインストールする。 あと ASP.NET Core プロジェクトを作成するためのテンプレートも。

$ brew install node
$ npm install -g yo
$ npm install -g bower
$ npm install -g generator-aspnet

これでテンプレートから、.NET Core や ASP.NET Core のプロジェクトを作成できるようになった。

試しに、Identity を使った認証付きの ASP.NET Core プロジェクトを作成してみる。

$ yo aspnet

     _-----_     ╭──────────────────────────╮
    |       |    │      Welcome to the      │
    |--(o)--|    │  marvellous ASP.NET Core │
   `---------´   │        generator!        │
    ( _´U`_ )    ╰──────────────────────────╯
    /___A___\   /
     |  ~  |
   __'.___.'__
 ´   `  |° ´ Y `

? What type of application do you want to create? Web Application
? Which UI framework would you like to use? Bootstrap (3.3.6)
? What's the name of your ASP.NET application? HelloAspNetCore

Nuget のパッケージをインストールして、SQLite のデータベースを作ってから、アプリ実行。

$ cd HelloAspNetCore
$ dotnet restore
$ dotnet ef database udpate
$ dotnet run

Safarilocalhost:5000 にアクセスすると、ASP.NET Core MVC おなじみのページが表示された。 ユーザー登録とログインもちゃんとできる。

f:id:griefworker:20160721230204p:plain

作りたいアプリのアイデアはいくつかあるので、 それが .NET Core + ASP.NET Core で実現できるか、 これから調べていこうと思う。

Anker の Lightning ケーブルを買った

gadget

Apple 純正の Lightning ケーブルが断線した。 iPhone を持つようになってから、これで何本目だろうか。 家で充電するとき専用に使っていたので、曲げることなんてほとんどなかったというのに。

あまりに壊れやすいので、今度は Anker の Lightning ケーブルを買った。

Anker といったらモバイルバッテリーや充電器のイメージだったけど、Lightning ケーブルも作っていたのか。 Apple 純正よりも耐久性は良いし、値段も安いしと評判は上々。

注文してから 3 日で実に強そうなケーブルが届いた。

Apple のものより一回り太い。 外側は 2重に編み込まれた高耐久ナイロンで、とても破れそうになくて期待が持てる。

二刀流

iphone

小遣いの半分近くが au への支払いに消えてツライ

auiPhone 5 を使っていたけど、 2 年間の毎月割が切れたため、 月々約 7500 円の通信料を支払っていた。

少ない小遣いの半分近くが通信量に消え、 小遣い帳アプリと睨めっこしながら過ごす日々。 技術書を買うのもままならない。

iPhoneSE が出たので MVNO に切り替えることにした

ずっと MVNO 切り替えたかった。

残念なことに、auiPhone 5 は SIM ロック解除対象外。 MVNO に切り替えるには SIM フリーの端末を買うしかない。 だけど、iPhone 6s は大きさが好きになれなくて、購入を躊躇してた。

そしたらなんと iPhone SE が出た。 これはもう SIM フリーの iPhone SE を買って、MVNO に切り替えるしかない。

家族はみんな au なので au の回線は残しておきたい

au の家族割りなら家族間の通話が 0 円。 通話は家族とすることがほとんどだから、通話は au のままがいい。 ケータイとスマホの 2 台持ちをすることに決めた。

MVNO の通話込みのプランの方が安いとはいえ、 ケータイの安い料金プランと比べてちょっとだけだし、 家族間の通話が 0 円でなくなるのが痛い。

通話に関しては、自分には MVNO にするメリットよりデメリットが上回った。

数多ある MVNO の中から mineo を選択

mineo.jp

契約したのは D プランのデータ通信のみ 3GB。

自分のスマホの用途は Twitter や LINE、Feedlyはてブや Pocket なので、3GB で収まるはず。 ただし、万が一 3GB 使い果たしてしまったときに、速度制限かかってもいいから使えることが絶対条件。 3GB のプランがあって、比較的メジャーで、値段が安いところに絞り込んだ結果、mineo が残った。

mineo には Amazon でエントリーパッケージを購入してから申し込んだ。 エントリーパッケージだと事務手数料が不要になるのでお得。

ケータイ端末も購入することにした

なぜなら、既に GEO に売ってしまって、手元に無いから。 売ってしまったことが悔やまれる。 後悔先に立たずだな。

機種変更して新品買う場合 30000 円 くらいかかるので予算オーバー。 最新機種じゃなくていいし、中古でもいいので、ネットで安い端末の GRATINA2 を購入した。 利用したサイトは『ダイワンテレコム』。

www.dai-one.jp

状態が S ランクの、動作確認だけを行った新古品が 13000 円だった。 実際、届いた端末は新品同然だったので、不満は今のところまったく無い。

購入した端末を au ショップに持ち込んで機種変更した

家族以外にまったく電話しないわけではないので、無料通話は欲しい。

ケータイの料金プランは、 一番安い『プランEシンプル』だと無料通話がないので、 1000 円分の無料通話がある『プランSSシンプル』にした。

無料通話を加味すると、プランSSシンプルの方が自分にはお得。

ケータイとスマホの 2 台持ちにして 2 ヶ月たった

毎月の通信料は合計で 2500 円弱。 機種変更前と比べて 5000 円ほど安くなった。

5000 円あれば、技術書が 1 ~ 2 冊は買える。 1000 円のランチに 5 回は行ける。

2 年経たずに元が取れそうだ。

2 台持ちを続けられるか一抹の不安はある

メーカーから出る機種はスマホばかりで、 ケータイの選択肢は年々減少しているからね。 ケータイが発売されなくなったら、2 台持ちは成り立たなくなる。 次の機種変更までなら、新古品で乗り切れるかもしれないが。

ケータイが発売されなくなったそのときは、 通話も MVNO に乗り換えてしまうだろうな。

もしかしたら、MVNO と同じくらい安いプランが au から出てるかもしれない。 これに関しては、あまり期待できそうにないかな。

『なるほどデザイン』を読んだ

book

デザインの勉強として購入。 図解が豊富で分かりやすかった。 特に、デザインによって伝わり方が異なる、というのが視覚的にはっきりと理解できた。 この本自体のデザインが素晴らしい。

自分がデザインしたい対象は Web サイトなのけど、 本書を読めばクールな Web デザインが作れる、ということにはならなそう。 載っているデザイン例は、雑誌や書籍の紙面を対象にしたものがほとんどだったし。 それでも Web デザインに適用できるところはあるはず。 CGM やメディア系の Web サービスなら適用できる範囲も広そうだな。

なるほどデザイン

なるほどデザイン

ミートショップみやざき

gourmet

早良区有田にある『ミートショップみやざき』に行ってみた。 この店はこだわりをもってA4 ランクの肉を扱っている肉屋。 一度テレビで見てからずっと気になっていた。

ミニステーキを 2 枚購入。 結構なボリュームに見えるけど、これで1枚100グラム超。 1枚の値段はだいたい 900円。 コスパは良く分からない。 ステーキ店よりは安いのかな。

ミートショップみやざきのホームページに、 ミニステーキの焼き方が載っているので、その通りに焼いてみる。

onikuya.com

肉の片面に塩コショウをふって、しばらく馴染ませる。

たっぷりの牛脂を塗ったフライパンで、 スライスしたニンニクを炒め、塩コショウした面を下にして焼く。 表面に赤い汁が滲んできたら、ひっくり返す頃合い。

ひっくり返したら軽く焼く。 30 秒くらい。

こんな厚い肉を家で焼くなんて初めてだったので、 ウェルダンになってしまった。

家にある安物のナイフとフォークでも、たいして力を入れずに切れる。 脂が甘い。肉も甘く感じた。 A5ランクと言われても気付づける自信は無い。 特上ロースのような濃厚さ。 自分の胃袋ならこれぐらいの量で丁度良い。

焼肉やすき焼きの肉も扱っているので、 涼しくなったらまた買いにいきたい。 さすがに最寄の次郎丸駅から結構歩いたので、この炎天下で行くのはツライな。 通販もやっているので、通販で買うのもアリかも。

『WEB+DB PRESS Vol.93』を読んだ

book

Gihyo Digital Publishing で WEB+DB PRESS Vol.93 を購入して読んだ。 実は毎号購読している。定期購読では無いけど。

Vol.93 では、ひげぽん氏のコラム『継続は力なり』が始まった。 ひげぽん氏といったら、Rebuild.fm の『139: Productivity Extremist』が個人的に神回。 Productivity Hack マニアの気がある自分としては、 あのような濃い内容の記事が今後も読めるのかと思うと楽しみすぎる。

あと『「進化」を先取る現場から』というインタビュー連載も始まった。 『小飼弾アルファギークに逢いたい』が絶賛連載中の頃に購読し始めたので、 インタビューの連載が無い WEB+DB PRESSWEB+DB PRESS じゃないと、 割と本気で思ってる。 インタビューアーは Increments CEO 海野氏。 過去のインタビュー連載とは毛色が違う感じになりそうで、 これまた期待。

WEB+DB PRESS Vol.93

WEB+DB PRESS Vol.93