From d0135c21a0dbb0b028a7b0b77c9bf6fb961cbbd8 Mon Sep 17 00:00:00 2001 From: Dmitriy yawaflua Andreev Date: Mon, 8 Jul 2024 02:19:16 +0300 Subject: [PATCH] Add startup to normally set-up a webhost --- Dockerfile | 3 +-- Program.cs | 33 +++++++-------------------------- Startup.cs | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 28 deletions(-) create mode 100644 Startup.cs diff --git a/Dockerfile b/Dockerfile index 9daaaf2..3888ede 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 diff --git a/Program.cs b/Program.cs index cfe627a..85324c9 100644 --- a/Program.cs +++ b/Program.cs @@ -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(); + }) + .Build().Run(); } } } diff --git a/Startup.cs b/Startup.cs new file mode 100644 index 0000000..e953c19 --- /dev/null +++ b/Startup.cs @@ -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(); + }); + } + } +} \ No newline at end of file