Merge branch 'master' into feature/api-explorer

This commit is contained in:
Nicolai Ort 2020-06-05 15:50:20 +02:00
commit 3401e9c0c5
4 changed files with 48 additions and 9 deletions

View File

@ -10,4 +10,12 @@ RUN dotnet publish -c Release -o /app
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS final FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS final
WORKDIR /app WORKDIR /app
COPY --from=build /app . COPY --from=build /app .
## Intruduce all the ENV vars
ENV DATABASE_HOST null
ENV DATABASE_PORT 5432
ENV DATABASE_NAME null
ENV DATABASE_USER null
ENV DATABASE_PASSWORD null
ENTRYPOINT ["dotnet", "ScrumTaskboard.dll"] ENTRYPOINT ["dotnet", "ScrumTaskboard.dll"]

View File

@ -26,13 +26,13 @@ namespace ScrumTaskboard
// This method gets called by the runtime. Use this method to add services to the container. // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
services.AddCors(o => o.AddPolicy("AllowAll", builder => services.AddCors(o => o.AddPolicy("AllowAll", builder =>
{ {
builder.AllowAnyOrigin() builder.AllowAnyOrigin()
.AllowAnyMethod() .AllowAnyMethod()
.AllowAnyHeader(); .AllowAnyHeader();
})); }));
services.AddMvc().AddJsonOptions(o => services.AddMvc().AddJsonOptions(o =>
{ {
o.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); o.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
@ -40,7 +40,7 @@ namespace ScrumTaskboard
}); });
services.AddScoped(serviceProvider => new TaskContext( services.AddScoped(serviceProvider => new TaskContext(
new DbContextOptionsBuilder<TaskContext>() new DbContextOptionsBuilder<TaskContext>()
.UseNpgsql("Host=nig.gl; Port=8543; Username=scrum; Database=taskboard; Password=c6gXud7YvBWp2sgxSgy4wRN") .UseNpgsql(GetConnectionString())
.Options)); .Options));
services.AddControllers(); services.AddControllers();
services.AddOpenApiDocument( services.AddOpenApiDocument(
@ -84,5 +84,36 @@ namespace ScrumTaskboard
app.UseOpenApi(); app.UseOpenApi();
app.UseSwaggerUi3(); app.UseSwaggerUi3();
} }
/// <summary>
/// Creates DB Connection String based on ENV vars and default vars.
/// </summary>
/// <returns></returns>
public string GetConnectionString()
{
string dbHost;
string dbPort;
string dbName;
string dbUser;
string dbPassword;
dbHost = Environment.GetEnvironmentVariable("DATABASE_HOST");
dbPort = Environment.GetEnvironmentVariable("DATABASE_PORT");
dbName = Environment.GetEnvironmentVariable("DATABASE_NAME");
dbUser = Environment.GetEnvironmentVariable("DATABASE_USER");
dbPassword = Environment.GetEnvironmentVariable("DATABASE_PASSWORD");
if(dbHost == null || dbPort == null || dbName == null || dbUser == null || dbPassword == null)
{
dbHost = "nig.gl";
dbPort = "8543";
dbName = "taskboard";
dbUser = "scrum";
dbPassword = "c6gXud7YvBWp2sgxSgy4wRN";
}
return $"Host={dbHost}; Port={dbPort}; Username={dbUser}; Database={dbName}; Password={dbPassword}";
}
} }
} }

View File

@ -15,12 +15,7 @@ namespace ScrumTaskboard
public DbSet<ScrumUser> Users { get; set; } public DbSet<ScrumUser> Users { get; set; }
public TaskContext() { } public TaskContext() { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql("Host=nig.gl; Port=8543; Username=scrum; Database=taskboard; Password=c6gXud7YvBWp2sgxSgy4wRN");
}
public TaskContext(DbContextOptions<TaskContext> options) : base(options) { } public TaskContext(DbContextOptions<TaskContext> options) : base(options) { }
} }

View File

@ -22,6 +22,11 @@ services:
- default - default
ports: ports:
- "5001:80" - "5001:80"
environment:
DATABASE_HOST: db
DATABASE_NAME: taskboard
DATABASE_USER: scrum
DATABASE_PASSWORD: c6gXud7YvBWp2sgxSgy4wRN
volumes: volumes:
db-data: db-data: