Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Adding sampl code for episode 10 - docker
  • Loading branch information
gregkalapos committed Mar 24, 2018
1 parent 51e7657 commit 191ed3a
Show file tree
Hide file tree
Showing 11 changed files with 279 additions and 1 deletion.
12 changes: 12 additions & 0 deletions .dockerignore
@@ -0,0 +1,12 @@
.dockerignore
.env
.git
.gitignore
.vs
.vscode
docker-compose.yml
docker-compose.*.yml
*/bin
*/obj
!obj/Docker/publish/*
!obj/Docker/empty/
20 changes: 20 additions & 0 deletions 10_AspNetCoreDocker/DockerSample/DockerSample.csproj
@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>

<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>

<PropertyGroup>
<MicrosoftNETPlatformLibrary>Microsoft.NETCore.App</MicrosoftNETPlatformLibrary>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0-preview1-final" />
</ItemGroup>

</Project>
59 changes: 59 additions & 0 deletions 10_AspNetCoreDocker/DockerSample/Dockerfile
@@ -0,0 +1,59 @@

#Sample 1 - build on dev. machine, run within a container
#FROM microsoft/aspnetcore-build:2.0 AS final
#WORKDIR /app
#COPY /WebApplication5/bin/Debug/netcoreapp2.0 .


#Sample 2 - build on dev. machine, run within a container, runtime image
#FROM microsoft/aspnetcore:2.0 AS final
#WORKDIR /app
#COPY /WebApplication5/bin/Debug/netcoreapp2.0 .


FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80

#Sample 3 - build in a container, run in another container
#FROM microsoft/aspnetcore-build:2.0 AS build
#WORKDIR /src
#COPY *.sln ./
#COPY 10_AspNetCoreDocker/DockerSample/DockerSample.csproj 10_AspNetCoreDocker/DockerSample/
#RUN dotnet restore
#COPY . .
#WORKDIR /src/10_AspNetCoreDocker/DockerSample
#RUN dotnet build -c Release -o /app
#
#FROM build AS publish
#RUN dotnet publish -c Release -o /app
#
#FROM base AS final
#WORKDIR /app
#COPY --from=publish /app .
#ENTRYPOINT ["dotnet", "DockerSample.dll"]


#Sample 4, build in a container, run in another container, .NET Core 2.1 with Aline Linux
FROM microsoft/dotnet:2.1-runtime-alpine AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk-alpine AS build
WORKDIR /src
#COPY *.sln ./
COPY DockerSample.csproj DockerSample/
#RUN dotnet restore
COPY . .
WORKDIR .
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /l/linux -r linux-x64
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /l/linux/libuv.so .
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "DockerSample.dll"]
26 changes: 26 additions & 0 deletions 10_AspNetCoreDocker/DockerSample/Program.cs
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace DockerSample
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("http://+:5000/")
.Build();
}
}
27 changes: 27 additions & 0 deletions 10_AspNetCoreDocker/DockerSample/Properties/launchSettings.json
@@ -0,0 +1,27 @@
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:50981/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"DockerSample": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:50982/"
}
}
}
34 changes: 34 additions & 0 deletions 10_AspNetCoreDocker/DockerSample/Startup.cs
@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;

namespace DockerSample
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
}
}
58 changes: 57 additions & 1 deletion DotNetConceptOfTheWeek.sln
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2027
VisualStudioVersion = 15.0.27130.2036
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01_CancellationSample_Before", "01_CancellationSample_Before\01_CancellationSample_Before.csproj", "{4FE36C80-6F69-4849-9E2F-95C9C4B14533}"
EndProject
Expand Down Expand Up @@ -52,6 +52,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "09_Blazor", "09_Blazor", "{
09_Blazor\readme.txt = 09_Blazor\readme.txt
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "10_AspNetCoreDocker", "10_AspNetCoreDocker", "{0F4CD670-7875-4DA6-BB6A-ABFDB26B1D29}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DockerSample", "10_AspNetCoreDocker\DockerSample\DockerSample.csproj", "{0F1EB413-7309-4F12-AA4D-895BD7E54C66}"
EndProject
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{61BE99CE-ED87-4822-887F-72E8D7645911}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -416,6 +422,54 @@ Global
{4D571F26-BE38-4F6F-99A3-65AB7F8BAEAF}.Release|x64.Build.0 = Release|iPhone
{4D571F26-BE38-4F6F-99A3-65AB7F8BAEAF}.Release|x86.ActiveCfg = Release|iPhone
{4D571F26-BE38-4F6F-99A3-65AB7F8BAEAF}.Release|x86.Build.0 = Release|iPhone
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|ARM.ActiveCfg = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|ARM.Build.0 = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|iPhone.Build.0 = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|x64.ActiveCfg = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|x64.Build.0 = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|x86.ActiveCfg = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Debug|x86.Build.0 = Debug|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|Any CPU.Build.0 = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|ARM.ActiveCfg = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|ARM.Build.0 = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|iPhone.ActiveCfg = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|iPhone.Build.0 = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|x64.ActiveCfg = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|x64.Build.0 = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|x86.ActiveCfg = Release|Any CPU
{0F1EB413-7309-4F12-AA4D-895BD7E54C66}.Release|x86.Build.0 = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|Any CPU.Build.0 = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|ARM.ActiveCfg = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|ARM.Build.0 = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|iPhone.Build.0 = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|x64.ActiveCfg = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|x64.Build.0 = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|x86.ActiveCfg = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Debug|x86.Build.0 = Debug|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|Any CPU.ActiveCfg = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|Any CPU.Build.0 = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|ARM.ActiveCfg = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|ARM.Build.0 = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|iPhone.ActiveCfg = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|iPhone.Build.0 = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|x64.ActiveCfg = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|x64.Build.0 = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|x86.ActiveCfg = Release|Any CPU
{61BE99CE-ED87-4822-887F-72E8D7645911}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -435,6 +489,8 @@ Global
{C2DBF605-C183-468C-95E7-65BCF99214C6} = {E26431D4-194B-4BFB-8355-3F8FB3677DFC}
{AD4C994C-4DA6-4393-B261-B3D2BA1FD35F} = {028DA887-D810-45F3-B280-EA53822022CD}
{4D571F26-BE38-4F6F-99A3-65AB7F8BAEAF} = {028DA887-D810-45F3-B280-EA53822022CD}
{0F1EB413-7309-4F12-AA4D-895BD7E54C66} = {0F4CD670-7875-4DA6-BB6A-ABFDB26B1D29}
{61BE99CE-ED87-4822-887F-72E8D7645911} = {0F4CD670-7875-4DA6-BB6A-ABFDB26B1D29}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3F64F0A3-5CD0-44AB-A2E7-D2A2AD801C8A}
Expand Down
9 changes: 9 additions & 0 deletions docker-compose.ci.build.yml
@@ -0,0 +1,9 @@
version: '3'

services:
ci-build:
image: microsoft/aspnetcore-build:1.0-2.0
volumes:
- .:/src
working_dir: /src
command: /bin/bash -c "dotnet restore ./DotNetConceptOfTheWeek.sln && dotnet publish ./DotNetConceptOfTheWeek.sln -c Release -o ./obj/Docker/publish"
19 changes: 19 additions & 0 deletions docker-compose.dcproj
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
<PropertyGroup Label="Globals">
<ProjectVersion>2.0</ProjectVersion>
<DockerTargetOS>Linux</DockerTargetOS>
<ProjectGuid>61be99ce-ed87-4822-887f-72e8d7645911</ProjectGuid>
<DockerLaunchBrowser>True</DockerLaunchBrowser>
<DockerServiceUrl>http://localhost:{ServicePort}</DockerServiceUrl>
<DockerServiceName>dockersample</DockerServiceName>
</PropertyGroup>
<ItemGroup>
<None Include="docker-compose.override.yml">
<DependentUpon>docker-compose.yml</DependentUpon>
</None>
<None Include="docker-compose.yml" />
<None Include=".dockerignore" />
<None Include="docker-compose.ci.build.yml" />
</ItemGroup>
</Project>
8 changes: 8 additions & 0 deletions docker-compose.override.yml
@@ -0,0 +1,8 @@
version: '3'

services:
dockersample:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "80"
8 changes: 8 additions & 0 deletions docker-compose.yml
@@ -0,0 +1,8 @@
version: '3'

services:
dockersample:
image: dockersample
build:
context: .
dockerfile: 10_AspNetCoreDocker/DockerSample/Dockerfile

0 comments on commit 191ed3a

Please sign in to comment.