Heroku
C#
.NETCore

.NETCoreのやつをheroku-cliを使わずにHerokuにデプロイする

調べてたらheroku-cliを使ってDockerfileを良い感じにしてあげたら動くらしかったんですけど、heroku-cliの使い方がよく分からないのでGUIでやろうとせこせこしてたら出来たので書きます。初Qiitaなのでガバくても許してください。

ちなみに動かしたのはこちら。Discordのbotです。

https://github.com/kvin-MisterD/DiscordBot


手順


  • Herokuのアプリを作る

  • デプロイしたいアプリのリポジトリと連携する。

  • [Settings] -> [Buildpacks] -> [Add buildpack] -> https://elements.heroku.com/buildpacks/jincod/dotnetcore-buildpackを追加する。

  • プロジェクトの.csprojに以下のコードを追加。

<Target Name="PrePublishTarget" AfterTargets="Publish">

<Exec Command="dotnet run"/>
</Target>


  • pushする。


もう少し詳しく

HerokuにはC#及び.NET CoreのBuildpackがありません。

BuildpackについてはHerokuのページを見てください。

https://jp.heroku.com/elements/buildpacks

ので、非公式のBuildpackを入れます。それがさっきのですね。

https://elements.heroku.com/buildpacks/jincod/dotnetcore-buildpack

で、このBuildpackくんは.csprojに設定を書いておいてあげると、デプロイした時に実行してくれます。下のはBuildpacksの中に書いてあったサンプル。

Configure your app to automatically run migrations at startup by adding the following to the .csproj file:

<Target Name="PrePublishTarget" AfterTargets="Publish">
<Exec Command="dotnet ef database update" />
</Target>

というわけで実行時コマンドにdotnet runを指定してあげただけでした。終わり。