前提・実現したいこと
.NET CoreでホスティングされたBlazorアプリ(BlazorBlog)を、DockerによってHerokuにデプロイしようとしています。
手順
- PowerShellでプロジェクトをRelease版で発行(
dotnet publish -c Release
管理者権限ではない) - source\repos\BlazorBlog\BlazorBlog\Server\bin\Release\net5.0\publish ディレクトリで
dotnet BlazorBlog.Server.dll
⇒ localhost:5000で待ち受け、アクセスして問題なく動作することを確認 - Dockerfileを作成
heroku container:push -a blazor-blog
が正常終了heroku container:release -a blazor-blog
が正常終了
エラーメッセージ
上記手順を踏んだあと、Herokuのログを見に行くと以下のメッセージが出ています。
txt:
1Could not execute because the specified command or file was not found. 2Possible reasons for this include: 3 * You misspelled a built-in dotnet command. 4 * You intended to execute a .NET program, but dotnet-BlazorBlog.Serever.dll does not exist. 5 * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
Dockerfile
dockerfile:
1FROM mcr.microsoft.com/dotnet/sdk:5.0 AS base 2WORKDIR /app 3COPY . . 4CMD ASPNETCORE_URLS=http://*:$PORT dotnet BlazorBlog.Serever.dll
はじめは FROM mcr.microsoft.com/dotnet/core/aspnet:5.0 AS base と書いていましたが、.NET SDKが見つかりませんというエラーがHerokuのログに出たため、SDKを指定しています。
疑問点
エラーメッセージから察するに、グローバルなツール(?)を実行することで**dotnet-BlazorBlog.Server.dllを実行しようとして、pulishフォルダにはそのようなファイルは含まれておらずエラーになるという流れだと考えています。
しかし手順の2.でdotnet-**がつかないDLLを実行することができています。
Release版でビルドするときに、先頭に**dotnet-**がついたDLLを生成させることはできるのでしょうか。
またはグローバルなツールを使用してもBlazorBlog.Server.dllを実行するように設定できるのでしょうか。
開発環境
- Windows10 Home
- VisualStudio 2019
- .NET 5.0
- Docker Desktop for Windows(WSL2ベース)
参考サイト
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。