Skip to content

Commit

Permalink
Provide capability to configure container port (#21)
Browse files Browse the repository at this point in the history
Provide capability to configure container port and switch to Docker Compose for local execution.

Closes #19.
  • Loading branch information
tomkerkhove committed Jan 3, 2019
1 parent 47b7e66 commit 8ccd835
Show file tree
Hide file tree
Showing 10 changed files with 84 additions and 15 deletions.
3 changes: 2 additions & 1 deletion src/.dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
.gitignore
.vs
.vscode
docker-compose.yml
docker-compose.*.yml
*/bin
*/obj
**/.toolstarget
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<UserSecretsId>aa61febe-79be-4baf-88d0-232f0e260b93</UserSecretsId>
<DockerComposeProjectPath>..\Arcus.EventGrid.Sidecar.Orchestrator.dcproj</DockerComposeProjectPath>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Expand Down
2 changes: 0 additions & 2 deletions src/Arcus.EventGrid.Sidecar.Api/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
Expand Down
13 changes: 13 additions & 0 deletions src/Arcus.EventGrid.Sidecar.Api/EnvironmentVariables.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace Arcus.EventGrid.Sidecar.Api
{
public class EnvironmentVariables
{
public class Runtime
{
public class Ports
{
public const string Http = "ARCUS_HTTP_PORT";
}
}
}
}
31 changes: 26 additions & 5 deletions src/Arcus.EventGrid.Sidecar.Api/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ public static void Main(string[] args)
{
Welcome();

CreateWebHostBuilder(args)
.Build()
BuildWebHost(args)
.Run();
}

Expand All @@ -28,8 +27,30 @@ private static void Welcome()
Console.WriteLine(WelcomeText);
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
public static IWebHost BuildWebHost(string[] args)
{
var httpPort = DetermineHttpPort();
var httpEndpointUrl = $"http://+:{httpPort}";

return WebHost.CreateDefaultBuilder(args)
.UseKestrel(kestrelServerOptions =>
{
kestrelServerOptions.AddServerHeader = false;
})
.UseUrls(httpEndpointUrl)
.UseStartup<Startup>()
.Build();
}

private static int DetermineHttpPort()
{
var rawConfiguredHttpPort = Environment.GetEnvironmentVariable(EnvironmentVariables.Runtime.Ports.Http);
if (int.TryParse(rawConfiguredHttpPort, out int configuredHttpPort))
{
return configuredHttpPort;
}

return 80;
}
}
}
6 changes: 0 additions & 6 deletions src/Arcus.EventGrid.Sidecar.Api/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseMvc();
app.UseOpenApiDocsWithExplorer();
}
Expand Down
18 changes: 18 additions & 0 deletions src/Arcus.EventGrid.Sidecar.Orchestrator.dcproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
<PropertyGroup Label="Globals">
<ProjectVersion>2.1</ProjectVersion>
<DockerTargetOS>Linux</DockerTargetOS>
<ProjectGuid>49d85a35-f341-47a3-887f-68dec06cebcd</ProjectGuid>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
<DockerServiceUrl>{Scheme}://localhost:{ServicePort}/swagger</DockerServiceUrl>
<DockerServiceName>arcus.eventgrid.sidecar.api</DockerServiceName>
</PropertyGroup>
<ItemGroup>
<None Include="docker-compose.override.yml">
<DependentUpon>docker-compose.yml</DependentUpon>
</None>
<None Include="docker-compose.yml" />
<None Include=".dockerignore" />
</ItemGroup>
</Project>
6 changes: 6 additions & 0 deletions src/Arcus.EventGrid.Sidecar.sln
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.28307.168
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Arcus.EventGrid.Sidecar.Api", "Arcus.EventGrid.Sidecar.Api\Arcus.EventGrid.Sidecar.Api.csproj", "{CF1BA281-352B-41E0-B2AD-DC35C85358B7}"
EndProject
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "Arcus.EventGrid.Sidecar.Orchestrator", "Arcus.EventGrid.Sidecar.Orchestrator.dcproj", "{49D85A35-F341-47A3-887F-68DEC06CEBCD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -15,6 +17,10 @@ Global
{CF1BA281-352B-41E0-B2AD-DC35C85358B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF1BA281-352B-41E0-B2AD-DC35C85358B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF1BA281-352B-41E0-B2AD-DC35C85358B7}.Release|Any CPU.Build.0 = Release|Any CPU
{49D85A35-F341-47A3-887F-68DEC06CEBCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{49D85A35-F341-47A3-887F-68DEC06CEBCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49D85A35-F341-47A3-887F-68DEC06CEBCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49D85A35-F341-47A3-887F-68DEC06CEBCD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
9 changes: 9 additions & 0 deletions src/docker-compose.override.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: '3.4'

services:
arcus.eventgrid.sidecar.api:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ARCUS_HTTP_PORT=88
ports:
- "42063:88"
8 changes: 8 additions & 0 deletions src/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: '3.4'

services:
arcus.eventgrid.sidecar.api:
image: arcusazure/azure-event-grid-sidecar
build:
context: .
dockerfile: Arcus.EventGrid.Sidecar.Api/Dockerfile

0 comments on commit 8ccd835

Please sign in to comment.