「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
.NET Core アプリケーションのコンテナ化をツールに頼らず手動で行う。
プロジェクト・ルートに Dockerfile を作成
dockerfile# ビルドステージ FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src # プロジェクトファイルをコピーして依存関係を復元 COPY ["MyApp.csproj", "."] RUN dotnet restore "./MyApp.csproj" # ソースコードをコピーしてビルド COPY . . RUN dotnet build "MyApp.csproj" -c Release -o /app/build # 発行ステージ FROM build AS publish RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish /p:UseAppHost=false # 実行ステージ(軽量イメージ) FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final WORKDIR /app EXPOSE 8080 COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "MyApp.dll"]
※ マルチステージ・ビルドという手法を使っている。
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MyApp.csproj", "."] RUN dotnet restore "./MyApp.csproj"
COPY . . RUN dotnet build "MyApp.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
WORKDIR /app
EXPOSE 8080
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyApp.dll"]
**/bin/ **/obj/ **/out/ .git/ .vs/ *.user
不要なファイルをビルドコンテキストから除外。