.NET CoreのDockerfile
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>.NET Core]]
--.NET CoreのDockerfile
--[[.NET CoreのDockerコンテナ化]]
* 目次 [#wa82e3cb]
#contents
*概要 [#f65a7d70]
[[.NET Core]]のDockerfileについて。
*詳細 [#e08bd85c]
**.NET Core [#p9edf5ed]
[[開発用>#j4beed09]]と[[リリース用>#w4e66d95]]で異なる。
***開発用 [#j4beed09]
-開発&デバッグ用
-Visual Studioによって生成されるDockerfile。
--Visual Studio経由で動作させられるが、~
--通常の docker run や、docker-composeでは動かない。
-netcore:3.0
#See https://aka.ms/containerfastmode to understand how ...
FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-sl...
WORKDIR /app
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["ConsoleApp1/ConsoleApp1.csproj", "ConsoleApp1/"]
RUN dotnet restore "ConsoleApp1/ConsoleApp1.csproj"
COPY . .
WORKDIR "/src/ConsoleApp1"
RUN dotnet build "ConsoleApp1.csproj" -c Release -o /app...
FROM build AS publish
RUN dotnet publish "ConsoleApp1.csproj" -c Release -o /a...
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ConsoleApp1.dll"]
***リリース用 [#w4e66d95]
-テスト以降用
-自作する必要がある。
--通常の docker run や、
--docker-composeでも
>動作する。
-netcore:3.0
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY dotnetapp/*.csproj ./dotnetapp/
COPY utils/*.csproj ./utils/
WORKDIR /app/dotnetapp
RUN dotnet restore
# copy and publish app and libraries
WORKDIR /app/
COPY dotnetapp/. ./dotnetapp/
COPY utils/. ./utils/
WORKDIR /app/dotnetapp
RUN dotnet publish -c Release -o out
# test application -- see: dotnet-docker-unit-testing.md
FROM build AS testrunner
WORKDIR /app/tests
COPY tests/. .
ENTRYPOINT ["dotnet", "test", "--logger:trx"]
FROM mcr.microsoft.com/dotnet/core/runtime:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/dotnetapp/out ./
ENTRYPOINT ["dotnet", "dotnetapp.dll"]
-各バーションは、[[dotnet/dotnet-docker>#n623273b]]を参照。
***構成の差異 [#od317d10]
未確認だが、恐らく、[[ASP.NETと同じ>#x48b0955]]。
**ASP.NET Core [#g7bb6ad8]
[[開発用>#pb857112]]と[[リリース用>#lbc156f6]]で異なる。
***開発用 [#pb857112]
-開発&デバッグ用
-Visual Studioによって生成されるDockerfile。
--Visual Studio経由で動作させられるが、~
--通常の docker run や、docker-composeでは動かない。
-aspnetcore:3.0
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-sli...
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebAppl...
RUN dotnet restore "WebApplication1/WebApplication1.cspr...
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o ...
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -...
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
***リリース用 [#lbc156f6]
-テスト以降用
-自作する必要がある。
--通常の docker run や、
--docker-composeでも
>動作する。
-aspnetcore:3.0
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY WebApplication1/*.csproj ./WebApplication1/
RUN dotnet restore
# copy everything else and build app
COPY WebApplication1/. ./WebApplication1/
WORKDIR /app/WebApplication1
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/WebApplication1/out ./
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
-各バーションは、[[dotnet/dotnet-docker>#n623273b]]を参照。
***構成の差異 [#x48b0955]
-開発&デバッグ用のコンテナの /app と /src に、~
ソース・コードが含まれてるの、全く解らんわ...。
#ref(hoge.png,left,nowrap,フォルダ構成の差異)
-...と思ったら、docker run の際に、以下のようなことをして...
docker run -dt -v "...\vsdbg\vs2017u5:/remote_debugger:r...
-...って事は、AS build と、AS publish 意味あるのか?と思...
AS build と、AS publish の部分を全て消してみたが、...動作...
--/app と /srcは、Windows側を見ている。
--以下が、AS build と、AS publishを削除したDockerfile。
#See https://aka.ms/containerfastmode ...
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-sli...
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM base AS final
WORKDIR /app
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
コレで、デバッグ実行も問題なく動作する。
--...もっと言うと、以下でも動作する...。
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-sli...
WORKDIR /app
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
-...と言う事で、開発&デバッグ用の~
Dockerfileの事は、忘れてしまってイイかも。
*参考 [#t31f92b2]
-dotnet-docker/samples at master · dotnet/dotnet-docker~
https://github.com/dotnet/dotnet-docker/tree/master/samples
-[[Dockerファイル - 開発基盤部会 Wiki>https://dotnetdevel...
**Microsoft Docs [#z73bf4dd]
-ASP.NET Core 向けの Docker イメージ~
https://docs.microsoft.com/ja-jp/aspnet/core/host-and-dep...
-Docker を使用してアプリをコンテナー化するチュートリアル ...
https://docs.microsoft.com/ja-jp/dotnet/core/docker/build...
-Windows での Visual Studio コンテナー ツール - Visual St...
https://docs.microsoft.com/ja-jp/visualstudio/containers/...
-Visual Studio コンテナー ツールのビルドとデバッグの概要 ...
https://docs.microsoft.com/ja-jp/visualstudio/containers/...
**dotnet/dotnet-docker [#n623273b]
-History for samples/dotnetapp/Dockerfile~
https://github.com/dotnet/dotnet-docker/commits/master/sa...
-History for samples/aspnetapp/Dockerfile~
https://github.com/dotnet/dotnet-docker/commits/master/sa...
----
Tags: [[:.NET開発]], [[:.NET Core]], [[:仮想化]]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>.NET Core]]
--.NET CoreのDockerfile
--[[.NET CoreのDockerコンテナ化]]
* 目次 [#wa82e3cb]
#contents
*概要 [#f65a7d70]
[[.NET Core]]のDockerfileについて。
*詳細 [#e08bd85c]
**.NET Core [#p9edf5ed]
[[開発用>#j4beed09]]と[[リリース用>#w4e66d95]]で異なる。
***開発用 [#j4beed09]
-開発&デバッグ用
-Visual Studioによって生成されるDockerfile。
--Visual Studio経由で動作させられるが、~
--通常の docker run や、docker-composeでは動かない。
-netcore:3.0
#See https://aka.ms/containerfastmode to understand how ...
FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-sl...
WORKDIR /app
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["ConsoleApp1/ConsoleApp1.csproj", "ConsoleApp1/"]
RUN dotnet restore "ConsoleApp1/ConsoleApp1.csproj"
COPY . .
WORKDIR "/src/ConsoleApp1"
RUN dotnet build "ConsoleApp1.csproj" -c Release -o /app...
FROM build AS publish
RUN dotnet publish "ConsoleApp1.csproj" -c Release -o /a...
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ConsoleApp1.dll"]
***リリース用 [#w4e66d95]
-テスト以降用
-自作する必要がある。
--通常の docker run や、
--docker-composeでも
>動作する。
-netcore:3.0
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY dotnetapp/*.csproj ./dotnetapp/
COPY utils/*.csproj ./utils/
WORKDIR /app/dotnetapp
RUN dotnet restore
# copy and publish app and libraries
WORKDIR /app/
COPY dotnetapp/. ./dotnetapp/
COPY utils/. ./utils/
WORKDIR /app/dotnetapp
RUN dotnet publish -c Release -o out
# test application -- see: dotnet-docker-unit-testing.md
FROM build AS testrunner
WORKDIR /app/tests
COPY tests/. .
ENTRYPOINT ["dotnet", "test", "--logger:trx"]
FROM mcr.microsoft.com/dotnet/core/runtime:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/dotnetapp/out ./
ENTRYPOINT ["dotnet", "dotnetapp.dll"]
-各バーションは、[[dotnet/dotnet-docker>#n623273b]]を参照。
***構成の差異 [#od317d10]
未確認だが、恐らく、[[ASP.NETと同じ>#x48b0955]]。
**ASP.NET Core [#g7bb6ad8]
[[開発用>#pb857112]]と[[リリース用>#lbc156f6]]で異なる。
***開発用 [#pb857112]
-開発&デバッグ用
-Visual Studioによって生成されるDockerfile。
--Visual Studio経由で動作させられるが、~
--通常の docker run や、docker-composeでは動かない。
-aspnetcore:3.0
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-sli...
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebAppl...
RUN dotnet restore "WebApplication1/WebApplication1.cspr...
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o ...
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -...
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
***リリース用 [#lbc156f6]
-テスト以降用
-自作する必要がある。
--通常の docker run や、
--docker-composeでも
>動作する。
-aspnetcore:3.0
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY WebApplication1/*.csproj ./WebApplication1/
RUN dotnet restore
# copy everything else and build app
COPY WebApplication1/. ./WebApplication1/
WORKDIR /app/WebApplication1
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/WebApplication1/out ./
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
-各バーションは、[[dotnet/dotnet-docker>#n623273b]]を参照。
***構成の差異 [#x48b0955]
-開発&デバッグ用のコンテナの /app と /src に、~
ソース・コードが含まれてるの、全く解らんわ...。
#ref(hoge.png,left,nowrap,フォルダ構成の差異)
-...と思ったら、docker run の際に、以下のようなことをして...
docker run -dt -v "...\vsdbg\vs2017u5:/remote_debugger:r...
-...って事は、AS build と、AS publish 意味あるのか?と思...
AS build と、AS publish の部分を全て消してみたが、...動作...
--/app と /srcは、Windows側を見ている。
--以下が、AS build と、AS publishを削除したDockerfile。
#See https://aka.ms/containerfastmode ...
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-sli...
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM base AS final
WORKDIR /app
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
コレで、デバッグ実行も問題なく動作する。
--...もっと言うと、以下でも動作する...。
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-sli...
WORKDIR /app
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
-...と言う事で、開発&デバッグ用の~
Dockerfileの事は、忘れてしまってイイかも。
*参考 [#t31f92b2]
-dotnet-docker/samples at master · dotnet/dotnet-docker~
https://github.com/dotnet/dotnet-docker/tree/master/samples
-[[Dockerファイル - 開発基盤部会 Wiki>https://dotnetdevel...
**Microsoft Docs [#z73bf4dd]
-ASP.NET Core 向けの Docker イメージ~
https://docs.microsoft.com/ja-jp/aspnet/core/host-and-dep...
-Docker を使用してアプリをコンテナー化するチュートリアル ...
https://docs.microsoft.com/ja-jp/dotnet/core/docker/build...
-Windows での Visual Studio コンテナー ツール - Visual St...
https://docs.microsoft.com/ja-jp/visualstudio/containers/...
-Visual Studio コンテナー ツールのビルドとデバッグの概要 ...
https://docs.microsoft.com/ja-jp/visualstudio/containers/...
**dotnet/dotnet-docker [#n623273b]
-History for samples/dotnetapp/Dockerfile~
https://github.com/dotnet/dotnet-docker/commits/master/sa...
-History for samples/aspnetapp/Dockerfile~
https://github.com/dotnet/dotnet-docker/commits/master/sa...
----
Tags: [[:.NET開発]], [[:.NET Core]], [[:仮想化]]
ページ名: