🗂

Jetbrain Riderで始めるASP.Net開発~セットアップ編~

2023/08/13に公開

前書き

自分でも手順を忘れないようにするための備忘録となります

概要

今回はプロジェクト作成からDockerでの起動までを行いたいと思います

プロジェクトの作成

フレームワークの選択

RiderのNewSolutionから「ASP.NETCore WebApplication」を選択します

※.NETFreamworkもあるので注意

Typeの選択


今回はAPIを選択する

DockerSupportの選択


今回はLinuxで選択する

コードの書きかえ

Dockerfileの書き換え

デフォルトではこのようになっている
デフォルトの状態ではDockerfileの書き方が間違えているため修正を行う

一部コメントで間違った部分の指摘を追加します

FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["Proj/Proj.csproj", "Proj/"] //←Pathが間違っている
RUN dotnet restore "Proj/Proj.csproj" //← -r linux-arm64を追加しないと怒られる
COPY . . //↓のWORKDIRを実行した後に行う
WORKDIR "/src/Proj"
RUN dotnet build "Proj.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Proj.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Proj.dll"]

というわけで直したもの

FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["Proj.csproj", "Proj/"]
RUN dotnet restore "Proj/Proj.csproj" -r linux-arm64
WORKDIR "/src/Proj"
COPY . .
RUN dotnet build "Proj.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Proj.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Proj.dll"]

コマンドの実行

まずコンテナの作成

docker build -t dotnetasp .\Proj\

コンテナの起動

docker run --rm -p 5000:80 dotnetasp

最後に動作確認
↓がデフォルトで定義されてるAPIとなります
http://localhost:5000/WeatherForecast

続編
https://zenn.dev/akty/articles/1d54823fe81286

Discussion