diff --git a/BuildOptimizedImages/src/Web/Dockerfile b/BuildOptimizedImages/src/Web/Dockerfile new file mode 100644 index 0000000..18be924 --- /dev/null +++ b/BuildOptimizedImages/src/Web/Dockerfile @@ -0,0 +1,11 @@ +FROM microsoft/aspnetcore-build:1.0.1 + +RUN mkdir /app +WORKDIR /app + +ADD project.json . +RUN dotnet restore --no-cache + +ADD . . +RUN dotnet publish --output /out/. --configuration Release +ADD Dockerfile.deploy /out/Dockerfile diff --git a/BuildOptimizedImages/src/Web/Dockerfile.deploy b/BuildOptimizedImages/src/Web/Dockerfile.deploy new file mode 100644 index 0000000..be3add3 --- /dev/null +++ b/BuildOptimizedImages/src/Web/Dockerfile.deploy @@ -0,0 +1,7 @@ +FROM microsoft/dotnet:1.0.1-core + +RUN mkdir /app +WORKDIR /app +ADD . . + +CMD dotnet app.dll diff --git a/BuildOptimizedImages/src/Web/project.json b/BuildOptimizedImages/src/Web/project.json index d9e6ae2..2da05ba 100644 --- a/BuildOptimizedImages/src/Web/project.json +++ b/BuildOptimizedImages/src/Web/project.json @@ -57,7 +57,6 @@ }, "scripts": { - "prepublish": [ "bower install", "dotnet bundle" ], - "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] + "prepublish": [ "bower install", "dotnet bundle" ] } } diff --git a/README.md b/README.md index 47a3161..6f3f9a1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,17 @@ # BuildASPDotNetInAContainer Sample used to build and test an ASP.NET Core Web app in a container + +# Builder container pattern + +Here's how to build the app in a container with the full .NET Core SDK, publish, export and then import in a smaller runtime container image: + +1. `cd BuildOptimizedImages\src\Web` +2. `$image_id = docker build -q .` +3. `$container_id = docker create $image_id.split(":")[1]` +4. `$tmp_folder_name = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath() + [System.IO.Path]::GetRandomFileName())` +5. `mkdir $tmp_folder_name` +6. ``docker cp $container_id`:/out $tmp_folder_name`` +7. `docker rm $container_id` +8. `docker build -t app $tmp_folder_name\out` +9. `Remove-Item -Recurse -Force $tmp_folder_name` +10. `docker run app`