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

Heroku で最小の ASP.NET 5 アプリを動かす

.net heroku

Heroku が .NET サポートを予定しているのか知らないけど、 Github には heroku/dotnet-buildpack という ASP.NET 5 用のビルドパックがある。

github.com

これを使えば ASP.NET 5 アプリを Heroku で動かせると思いきや、 Mac OSX で作成したプロジェクトをデプロイすると、 コンパイル時に「アーキテクチャx64x86 にしろゴルァ」ってエラー発生。

このエラーに関しては、既にプルリクエストが存在するので、 問題無ければさっさとマージしてほしいところ。 プルリクエストを送っている側の dotnet-buildpack を使うと上手くいった。

github.com

手順は次の通り。

# DNVM を入れてなければインストール
brew tap aspnet/dnx
brew update
brew install dnvm

# dotnet-buildpack は Mono なので
# 最新の DNX for Mono をインストールする
dnvm upgrade -r mono

# Node を入れてなければインストール
brew install node

# yo と ASP.NET 5 のジェネレーターをインストール
npm install -g yo generator-aspnet

# ASP.NET 5 のプロジェクトを作成
# タイプは Empty Application を選択
# 名前は HerokuAspNet にでもしておく
yo aspnet

# 依存パッケージをインストール
cd HerokuAspNet
dnu restore

# 最小の ASP.NET 5 アプリを動かすのでそのまま Git でコミット
git init .
git add .
git commit -m "Initial commit"

# Heroku Toolbelt を入れてなければインストール
brew install heroku-toolbelt

# Heroku にアプリを作成してデプロイ
# ビルドパックは ASP.NET 5 用のものを使う
heroku create --buildpack https://github.com/jincod/dotnet-buildpack.git
git push heroku master

# ブラウザで表示
heroku open

Heroku で ASP.NET 5 アプリが動いているぞ!

f:id:griefworker:20160105200803p:plain

データベースは使っていないけど、Entity Framework 7 や Dapper に Npgsql を組み合わせれば、 Heroku Postgres も使えるはず。