From b506cdcc134ec369045b8b1a32c27d5cab0a921a Mon Sep 17 00:00:00 2001 From: BabychMaksym Date: Mon, 13 May 2024 21:03:07 +0300 Subject: [PATCH] add HomeWork 31 --- HomeWork31/HomeWork31/.dockerignore | 30 ++++++++ .../HomeWork31/Controllers/StoreController.cs | 68 +++++++++++++++++++ HomeWork31/HomeWork31/Dockerfile | 23 +++++++ HomeWork31/HomeWork31/HomeWork31.csproj | 18 +++++ HomeWork31/HomeWork31/HomeWork31.csproj.user | 7 ++ HomeWork31/HomeWork31/HomeWork31.http | 6 ++ HomeWork31/HomeWork31/HomeWork31.sln | 25 +++++++ HomeWork31/HomeWork31/Models/Item.cs | 8 +++ HomeWork31/HomeWork31/Program.cs | 20 ++++++ ...egistry.hub.docker.com_redaggressor.pubxml | 18 +++++ ...ry.hub.docker.com_redaggressor.pubxml.user | 12 ++++ .../HomeWork31/appsettings.Development.json | 8 +++ HomeWork31/HomeWork31/appsettings.json | 9 +++ HomeWork31/HomeWork31/docker-compose.yml | 29 ++++++++ HomeWork31/HomeWork31/nginx.conf | 8 +++ 15 files changed, 289 insertions(+) create mode 100644 HomeWork31/HomeWork31/.dockerignore create mode 100644 HomeWork31/HomeWork31/Controllers/StoreController.cs create mode 100644 HomeWork31/HomeWork31/Dockerfile create mode 100644 HomeWork31/HomeWork31/HomeWork31.csproj create mode 100644 HomeWork31/HomeWork31/HomeWork31.csproj.user create mode 100644 HomeWork31/HomeWork31/HomeWork31.http create mode 100644 HomeWork31/HomeWork31/HomeWork31.sln create mode 100644 HomeWork31/HomeWork31/Models/Item.cs create mode 100644 HomeWork31/HomeWork31/Program.cs create mode 100644 HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml create mode 100644 HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml.user create mode 100644 HomeWork31/HomeWork31/appsettings.Development.json create mode 100644 HomeWork31/HomeWork31/appsettings.json create mode 100644 HomeWork31/HomeWork31/docker-compose.yml create mode 100644 HomeWork31/HomeWork31/nginx.conf diff --git a/HomeWork31/HomeWork31/.dockerignore b/HomeWork31/HomeWork31/.dockerignore new file mode 100644 index 0000000..fe1152b --- /dev/null +++ b/HomeWork31/HomeWork31/.dockerignore @@ -0,0 +1,30 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs +!.git/refs/heads/** \ No newline at end of file diff --git a/HomeWork31/HomeWork31/Controllers/StoreController.cs b/HomeWork31/HomeWork31/Controllers/StoreController.cs new file mode 100644 index 0000000..a9a8f0e --- /dev/null +++ b/HomeWork31/HomeWork31/Controllers/StoreController.cs @@ -0,0 +1,68 @@ +using HomeWork31.Models; +using Microsoft.AspNetCore.Mvc; + +namespace HomeWork31.Controllers +{ + [ApiController] + [Route("[controller]")] + public class StoreController : ControllerBase + { + private Item[] Summaries = + { + new Item() + { + Name = "Aplle", + Price = 20 + }, + new Item() + { + Name = "Banana", + Price = 50 + }, + new Item() + { + Name = "Orange", + Price = 60 + }, + new Item() + { + Name = "Mango", + Price = 45, + }, + new Item() + { + Name = "Coconuts", + Price = 20 + } + }; + + private readonly ILogger _logger; + + public StoreController(ILogger logger) + { + _logger = logger; + } + + [HttpGet("GetListFruits")] + public IEnumerable Get() + { + return Summaries; + } + + [HttpPost("AddItem")] + public string Post(Item input) + { + var result = new Item[Summaries.Length]; + + for (int i = 0; i < Summaries.Length; i++) + { + result[i] = Summaries[i]; + } + + result[^1] = input; + Summaries = result; + + return $"item seccusfull add, id item = {result.Length}"; + } + } +} diff --git a/HomeWork31/HomeWork31/Dockerfile b/HomeWork31/HomeWork31/Dockerfile new file mode 100644 index 0000000..c2c9708 --- /dev/null +++ b/HomeWork31/HomeWork31/Dockerfile @@ -0,0 +1,23 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER app +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["HomeWork31.csproj", "."] +RUN dotnet restore "./././HomeWork31.csproj" +COPY . . +WORKDIR "/src/." +RUN dotnet build "./HomeWork31.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./HomeWork31.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "HomeWork31.dll"] \ No newline at end of file diff --git a/HomeWork31/HomeWork31/HomeWork31.csproj b/HomeWork31/HomeWork31/HomeWork31.csproj new file mode 100644 index 0000000..3a98384 --- /dev/null +++ b/HomeWork31/HomeWork31/HomeWork31.csproj @@ -0,0 +1,18 @@ + + + + net8.0 + enable + enable + true + bcadb0d9-86c3-49a8-800c-a53eb852e961 + Linux + . + + + + + + + + diff --git a/HomeWork31/HomeWork31/HomeWork31.csproj.user b/HomeWork31/HomeWork31/HomeWork31.csproj.user new file mode 100644 index 0000000..a578c9b --- /dev/null +++ b/HomeWork31/HomeWork31/HomeWork31.csproj.user @@ -0,0 +1,7 @@ + + + + Docker + D:\Projects\Alevel\HomeWork31\HomeWork31\Properties\PublishProfiles\registry.hub.docker.com_redaggressor.pubxml + + \ No newline at end of file diff --git a/HomeWork31/HomeWork31/HomeWork31.http b/HomeWork31/HomeWork31/HomeWork31.http new file mode 100644 index 0000000..32e1ec7 --- /dev/null +++ b/HomeWork31/HomeWork31/HomeWork31.http @@ -0,0 +1,6 @@ +@HomeWork31_HostAddress = http://localhost:5051 + +GET {{HomeWork31_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/HomeWork31/HomeWork31/HomeWork31.sln b/HomeWork31/HomeWork31/HomeWork31.sln new file mode 100644 index 0000000..35e3193 --- /dev/null +++ b/HomeWork31/HomeWork31/HomeWork31.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34525.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HomeWork31", "HomeWork31.csproj", "{47208C51-6610-43EF-8576-9BFB3D74277A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {47208C51-6610-43EF-8576-9BFB3D74277A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47208C51-6610-43EF-8576-9BFB3D74277A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47208C51-6610-43EF-8576-9BFB3D74277A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47208C51-6610-43EF-8576-9BFB3D74277A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BD2811C6-C342-47A2-A701-1327DF99694D} + EndGlobalSection +EndGlobal diff --git a/HomeWork31/HomeWork31/Models/Item.cs b/HomeWork31/HomeWork31/Models/Item.cs new file mode 100644 index 0000000..779836b --- /dev/null +++ b/HomeWork31/HomeWork31/Models/Item.cs @@ -0,0 +1,8 @@ +namespace HomeWork31.Models +{ + public class Item + { + public string? Name { get; set; } + public double Price { get; set; } + } +} diff --git a/HomeWork31/HomeWork31/Program.cs b/HomeWork31/HomeWork31/Program.cs new file mode 100644 index 0000000..d122b00 --- /dev/null +++ b/HomeWork31/HomeWork31/Program.cs @@ -0,0 +1,20 @@ +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddControllers(); + +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseAuthorization(); + +app.MapControllers(); + +app.Run(); diff --git a/HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml b/HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml new file mode 100644 index 0000000..93d2c20 --- /dev/null +++ b/HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml @@ -0,0 +1,18 @@ + + + + + Custom + true + https://registry.hub.docker.com/redaggressor + redaggressor + latest + ContainerRegistry + Release + Any CPU + 47208c51-6610-43ef-8576-9bfb3d74277a + <_TargetId>DockerContainerRegistry + + \ No newline at end of file diff --git a/HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml.user b/HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml.user new file mode 100644 index 0000000..c13f705 --- /dev/null +++ b/HomeWork31/HomeWork31/Properties/PublishProfiles/registry.hub.docker.com_redaggressor.pubxml.user @@ -0,0 +1,12 @@ + + + + + AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAuPIlVrxFIE6tOmj7WnPv8gAAAAACAAAAAAAQZgAAAAEAACAAAAAAx4bgDuTGBBhG0y+ERyaA02oC6smSePBwAbbfdunYYQAAAAAOgAAAAAIAACAAAAAM6M+ESvMgqG37/k5dAYJG4qqX2CKnGt6c4HI4nC+wRyAAAAA4diMcHajYv5O48PaK75HJoVvrogmzDxURjHO+6nsA0kAAAAA/+6hKiuUzJWWZdBvxG6gtNurHuIoN1WJRi0fMceLiHh2iM4kxZjBTxxsUlfkX4/dEykDo/bvW2xje4lF8bgzr + + True|2024-05-13T17:38:45.6220760Z; + + + \ No newline at end of file diff --git a/HomeWork31/HomeWork31/appsettings.Development.json b/HomeWork31/HomeWork31/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/HomeWork31/HomeWork31/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/HomeWork31/HomeWork31/appsettings.json b/HomeWork31/HomeWork31/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/HomeWork31/HomeWork31/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/HomeWork31/HomeWork31/docker-compose.yml b/HomeWork31/HomeWork31/docker-compose.yml new file mode 100644 index 0000000..a96aaf2 --- /dev/null +++ b/HomeWork31/HomeWork31/docker-compose.yml @@ -0,0 +1,29 @@ +version: '3.8' + +services: + catalog.api: + build: + context: . + dockerfile: Dockerfile + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ASPNETCORE_URLS=http://+:5000 + ports: + - 5000:5000 + nginx: + image: nginx:latest + ports: + - 80:80 + volumes: + - ./nginx.conf:/etc/nginx.conf + +networks: + shop_default: + driver: bridge + internal: false + attachable: true + ipam: + driver: default + config: + - subnet: 192.168.0.0/24 + gateway: 192.168.0.1 \ No newline at end of file diff --git a/HomeWork31/HomeWork31/nginx.conf b/HomeWork31/HomeWork31/nginx.conf new file mode 100644 index 0000000..cb7477e --- /dev/null +++ b/HomeWork31/HomeWork31/nginx.conf @@ -0,0 +1,8 @@ +server { + listen 80; + server_name localhost; + + location / { + proxy_pass http://www.alevelwebsite.com:5000; + } +} \ No newline at end of file