Add startup to normally set-up a webhost

This commit is contained in:
Dmitriy yawaflua Andreev
2024-07-08 02:19:16 +03:00
parent 6a30555fa4
commit d0135c21a0
3 changed files with 55 additions and 28 deletions

View File

@@ -3,8 +3,7 @@
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release

View File

@@ -5,32 +5,13 @@ namespace OembedTests
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(k =>
{
k.ConfigureKestrel(l => l.ListenAnyIP(80));
k.UseStartup<Startup>();
})
.Build().Run();
}
}
}

47
Startup.cs Normal file
View File

@@ -0,0 +1,47 @@
namespace OembedTests
{
public class Startup
{
private readonly IConfiguration configuration;
public static IServiceProvider serviceProvider;
public Startup()
{
configuration = new ConfigurationBuilder()
.AddEnvironmentVariables(prefix: "m.")
.AddJsonFile("appsettings.json", optional: true)
.Build();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services
.AddSwaggerGen()
.AddSingleton(configuration)
.AddEndpointsApiExplorer();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwagger(c =>
{
c.RouteTemplate = "/swagger/v1/swagger.json";
});
app.UseStaticFiles();
app.UseRouting();
app.UseCors(k => { k.AllowAnyHeader(); k.AllowAnyMethod(); k.AllowAnyOrigin(); k.WithMethods("POST", "GET"); });
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}