This commit is contained in:
2023-03-27 21:26:30 +02:00
parent a7eebf8f38
commit 9b914b211d
13 changed files with 391 additions and 320 deletions

86
.gitignore vendored
View File

@@ -1,42 +1,44 @@
################################################################################ ################################################################################
# This .gitignore file was automatically created by Microsoft(R) Visual Studio. # This .gitignore file was automatically created by Microsoft(R) Visual Studio.
################################################################################ ################################################################################
/Back/skydiveLogs-api/obj /Back/skydiveLogs-api/obj
/Back/.vs/skydiveLogs-api/v15 /Back/.vs/skydiveLogs-api/v15
/Back/skydiveLogs-api/bin /Back/skydiveLogs-api/bin
/Back/.vs /Back/.vs
/Back/skydiveLogs-api.DomainBusiness/obj /Back/skydiveLogs-api.DomainBusiness/obj
/Back/skydiveLogs-api.Infrastructure/obj /Back/skydiveLogs-api.Infrastructure/obj
/Back/skydiveLogs-api.Model/obj /Back/skydiveLogs-api.Model/obj
/Back/skydiveLogs-api.Model/bin /Back/skydiveLogs-api.Model/bin
/Back/skydiveLogs-api.Ioc/bin /Back/skydiveLogs-api.Ioc/bin
/Back/skydiveLogs-api.Ioc/obj /Back/skydiveLogs-api.Ioc/obj
/Back/skydiveLogs-api.Infrastructure/bin /Back/skydiveLogs-api.Infrastructure/bin
/Back/skydiveLogs-api.DomainBusiness/bin /Back/skydiveLogs-api.DomainBusiness/bin
/Back/dist /Back/dist
/Back/skydiveLogs-api.v3.ncrunchsolution.user /Back/skydiveLogs-api.v3.ncrunchsolution.user
/Back/skydiveLogs-api/Init/twinOtter.jpg /Back/skydiveLogs-api/Init/twinOtter.jpg
/Back/skydiveLogs-api/Init/skyvan.jpg /Back/skydiveLogs-api/Init/skyvan.jpg
/Back/skydiveLogs-api/Init/Pilatus.png /Back/skydiveLogs-api/Init/Pilatus.png
/Back/skydiveLogs-api/Init/pac.jpg /Back/skydiveLogs-api/Init/pac.jpg
/Back/skydiveLogs-api/Init/dornier.jpg /Back/skydiveLogs-api/Init/dornier.jpg
/Back/skydiveLogs-api/Init/casa.jpg /Back/skydiveLogs-api/Init/casa.jpg
/Back/skydiveLogs-api/Init/caravan.jpg /Back/skydiveLogs-api/Init/caravan.jpg
/Back/skydiveLogs-api/Init/206.jpg /Back/skydiveLogs-api/Init/206.jpg
/Back/skydiveLogs-api/Data /Back/skydiveLogs-api/Data
/Back/skydiveLogs-api.DomainService/bin /Back/skydiveLogs-api.DomainService/bin
/Back/skydiveLogs-api.DomainService/obj /Back/skydiveLogs-api.DomainService/obj
/Back/skydiveLogs-api.Data/obj /Back/skydiveLogs-api.Data/obj
/Back/skydiveLogs-api.Business/obj /Back/skydiveLogs-api.Business/obj
/Back/skydiveLogs-api.Domain/obj /Back/skydiveLogs-api.Domain/obj
/Back/skydiveLogs-api.Domain/bin/Debug/net5.0 /Back/skydiveLogs-api.Domain/bin/Debug/net5.0
/Back/skydiveLogs-api.Data/bin/Debug/net5.0 /Back/skydiveLogs-api.Data/bin/Debug/net5.0
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/ref/skydiveLogs-api.Domain.dll /Back/skydiveLogs-api.Domain/bin/Release/net5.0/ref/skydiveLogs-api.Domain.dll
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.dll /Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.dll
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.pdb /Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.pdb
/Back/skydiveLogs-api/Data/JumpsDb-log.db /Back/skydiveLogs-api/Data/JumpsDb-log.db
/Back/skydiveLogs-api/Data/JumpsDb.db /Back/skydiveLogs-api/Data/JumpsDb.db
Back/skydiveLogs-api/Data/JumpsDb.db Back/skydiveLogs-api/Data/JumpsDb.db
Back/skydiveLogs-api/Data/JumpsDb-log.db Back/skydiveLogs-api/Data/JumpsDb-log.db
/Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.deps.json /Back/skydiveLogs-api.Domain/bin/Release/net5.0/skydiveLogs-api.Domain.deps.json
/Back/skydiveLogs-api.Domain/bin/Debug/net6.0
Back/skydiveLogs-api/Data/JumpsDb.db

35
Back/.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,35 @@
{
"version": "0.2.0",
"configurations": [
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/skydiveLogs-api/bin/Debug/net6.0/skydiveLogs-api.dll",
"args": [],
"cwd": "${workspaceFolder}/skydiveLogs-api",
"stopAtEntry": false,
// Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
"serverReadyAction": {
"action": "openExternally",
"pattern": "\\bNow listening on:\\s+(https?://\\S+)"
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach"
}
]
}

41
Back/.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,41 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/skydiveLogs-api/skydiveLogs-api.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/skydiveLogs-api/skydiveLogs-api.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"--project",
"${workspaceFolder}/skydiveLogs-api/skydiveLogs-api.csproj"
],
"problemMatcher": "$msCompile"
}
]
}

View File

@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>skydiveLogs_api.Domain</RootNamespace> <RootNamespace>skydiveLogs_api.Domain</RootNamespace>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>skydiveLogs_api.DomainBusiness</RootNamespace> <RootNamespace>skydiveLogs_api.DomainBusiness</RootNamespace>
</PropertyGroup> </PropertyGroup>

View File

@@ -1,12 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>skydiveLogs_api.DomainService</RootNamespace> <RootNamespace>skydiveLogs_api.DomainService</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" /> <ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,17 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>skydiveLogs_api.Infrastructure</RootNamespace> <RootNamespace>skydiveLogs_api.Infrastructure</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="LiteDB" Version="5.0.11" /> <PackageReference Include="LiteDB" Version="5.0.12" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\skydiveLogs-api.DomainService\skydiveLogs-api.DomainService.csproj" /> <ProjectReference Include="..\skydiveLogs-api.DomainService\skydiveLogs-api.DomainService.csproj" />
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" /> <ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,26 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<RootNamespace>skydiveLogs_api.Ioc</RootNamespace> <RootNamespace>skydiveLogs_api.Ioc</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
</ItemGroup> <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
<ItemGroup> </ItemGroup>
<ProjectReference Include="..\skydiveLogs-api.Infrastructure\skydiveLogs-api.Infrastructure.csproj" />
<ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" /> <ItemGroup>
</ItemGroup> <ProjectReference Include="..\skydiveLogs-api.Infrastructure\skydiveLogs-api.Infrastructure.csproj" />
<ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" />
<ItemGroup> </ItemGroup>
<Reference Include="Microsoft.Extensions.Configuration.Abstractions">
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.abstractions\2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath> </Project>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
<HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.dependencyinjection.abstractions\2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

View File

@@ -1,129 +1,129 @@
using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using skydiveLogs_api.DomainBusiness.Interfaces; using skydiveLogs_api.DomainBusiness.Interfaces;
using skydiveLogs_api.Ioc; using skydiveLogs_api.Ioc;
using skydiveLogs_api.Settings; using skydiveLogs_api.Settings;
using System.IO; using System.IO;
using System.Text; using System.Text;
namespace skydiveLogs_api namespace skydiveLogs_api
{ {
public class Startup public class Startup
{ {
#region Public Constructors #region Public Constructors
public Startup(IConfiguration configuration) public Startup(IConfiguration configuration)
{ {
Configuration = configuration; Configuration = configuration;
} }
#endregion Public Constructors #endregion Public Constructors
#region Public Methods #region Public Methods
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{ {
if (env.EnvironmentName == "Development") if (env.EnvironmentName == "Development")
{ {
app.UseDeveloperExceptionPage(); app.UseDeveloperExceptionPage();
} }
else else
{ {
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. // 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.UseHsts();
} }
app.UseCors(); app.UseCors();
app.UseAuthentication(); app.UseAuthentication();
app.UseMvc(); app.UseMvc();
} }
// 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.AddMvc(options => { options.EnableEndpointRouting = false; }) services.AddMvc(options => { options.EnableEndpointRouting = false; });
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0); //.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
services.AddHttpContextAccessor(); services.AddHttpContextAccessor();
// JWT // JWT
var jwtSection = Configuration.GetSection("JWT"); var jwtSection = Configuration.GetSection("JWT");
services.Configure<JwtSettings>(jwtSection); services.Configure<JwtSettings>(jwtSection);
var jwtSettings = new JwtSettings(); var jwtSettings = new JwtSettings();
jwtSection.Bind(jwtSettings); jwtSection.Bind(jwtSettings);
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options => .AddJwtBearer(options =>
{ {
options.SaveToken = true; options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters() options.TokenValidationParameters = new TokenValidationParameters()
{ {
ValidateIssuer = true, ValidateIssuer = true,
ValidateAudience = true, ValidateAudience = true,
ValidateLifetime = true, ValidateLifetime = true,
ValidateIssuerSigningKey = true, ValidateIssuerSigningKey = true,
ValidIssuer = jwtSettings.Issuer, ValidIssuer = jwtSettings.Issuer,
ValidAudience = jwtSettings.Issuer, ValidAudience = jwtSettings.Issuer,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.Passphrase)) IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.Passphrase))
}; };
}); });
// CORS // CORS
var corsSettings = new CorsSettings(); var corsSettings = new CorsSettings();
Configuration.GetSection("Cors").Bind(corsSettings); Configuration.GetSection("Cors").Bind(corsSettings);
services.AddCors(options => services.AddCors(options =>
{ {
options.AddDefaultPolicy( options.AddDefaultPolicy(
builder => builder =>
{ {
builder.WithOrigins(corsSettings.FrontUrl) builder.WithOrigins(corsSettings.FrontUrl)
.AllowAnyHeader() .AllowAnyHeader()
.AllowAnyMethod(); .AllowAnyMethod();
}); });
}); });
// IoC // IoC
var iocService = new IocService(services, Configuration); var iocService = new IocService(services, Configuration);
iocService.Configure(); iocService.Configure();
// AutoMapper // AutoMapper
services.AddAutoMapper(typeof(Mapper.ModelProfile)); services.AddAutoMapper(typeof(Mapper.ModelProfile));
CheckAndInitDb(services); CheckAndInitDb(services);
} }
#endregion Public Methods #endregion Public Methods
#region Private Methods #region Private Methods
private void CheckAndInitDb(IServiceCollection services) private void CheckAndInitDb(IServiceCollection services)
{ {
string connectionString = Configuration.GetConnectionString("DefaultConnection"); string connectionString = Configuration.GetConnectionString("DefaultConnection");
string dbFile = connectionString.Replace("Filename=", string.Empty); string dbFile = connectionString.Replace("Filename=", string.Empty);
if (!File.Exists(dbFile)) if (!File.Exists(dbFile))
{ {
var serviceProvider = services.BuildServiceProvider(); var serviceProvider = services.BuildServiceProvider();
var initDbService = serviceProvider.GetRequiredService<IInitDbService>(); var initDbService = serviceProvider.GetRequiredService<IInitDbService>();
initDbService.GenerateDb(); initDbService.GenerateDb();
} }
} }
#endregion Private Methods #endregion Private Methods
#region Public Properties #region Public Properties
public IConfiguration Configuration { get; } public IConfiguration Configuration { get; }
#endregion Public Properties #endregion Public Properties
} }
} }

View File

@@ -1,34 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<RootNamespace>skydiveLogs_api</RootNamespace> <RootNamespace>skydiveLogs_api</RootNamespace>
<UserSecretsId>9d7d268e-ee4d-43a2-a9b7-5b00b516f6f8</UserSecretsId> <UserSecretsId>9d7d268e-ee4d-43a2-a9b7-5b00b516f6f8</UserSecretsId>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<None Remove="Data\JumpsDb.db" /> <None Remove="Data\JumpsDb.db" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Data\JumpsDb.db"> <Content Include="Data\JumpsDb.db">
<CopyToOutputDirectory>Never</CopyToOutputDirectory> <CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AutoMapper" Version="10.1.1" /> <PackageReference Include="AutoMapper" Version="12.0.0" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" /> <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.9" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.11" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.10" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.12.0" /> <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.25.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" /> <ProjectReference Include="..\skydiveLogs-api.DomainBusiness\skydiveLogs-api.DomainBusiness.csproj" />
<ProjectReference Include="..\skydiveLogs-api.Ioc\skydiveLogs-api.Ioc.csproj" /> <ProjectReference Include="..\skydiveLogs-api.Ioc\skydiveLogs-api.Ioc.csproj" />
<ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" /> <ProjectReference Include="..\skydiveLogs-api.Domain\skydiveLogs-api.Domain.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Controller_SelectedScaffolderID>ApiControllerWithActionsScaffolder</Controller_SelectedScaffolderID> <Controller_SelectedScaffolderID>ApiControllerWithActionsScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Controller</Controller_SelectedScaffolderCategoryPath> <Controller_SelectedScaffolderCategoryPath>root/Controller</Controller_SelectedScaffolderCategoryPath>
<WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth> <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
<WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected> <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
<WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected> <WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
<WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected> <WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
<WebStackScaffolding_LayoutPageFile /> <WebStackScaffolding_LayoutPageFile />
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected> <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
<NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile> <NameOfLastUsedPublishProfile>C:\Projects\SkydiveLogs\Back\skydiveLogs-api\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<ShowAllFiles>false</ShowAllFiles> <ShowAllFiles>false</ShowAllFiles>
<ActiveDebugProfile>skydiveLogs_api</ActiveDebugProfile> <ActiveDebugProfile>skydiveLogs_api</ActiveDebugProfile>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor> <DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -1,29 +1,29 @@
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:5.0.6-buster-slim-amd64 AS base FROM mcr.microsoft.com/dotnet/aspnet:7.0.4-buster-slim-amd64 AS base
WORKDIR /app WORKDIR /app
EXPOSE 80 EXPOSE 80
RUN apt-get -y update RUN apt-get -y update
RUN apt-get -y install nginx RUN apt-get -y install nginx
RUN mkdir /app/Front RUN mkdir /app/Front
RUN mkdir /app/API RUN mkdir /app/API
WORKDIR /app/Front WORKDIR /app/Front
COPY Front/skydivelogs-app/dist . COPY Front/skydivelogs-app/dist .
WORKDIR /app/API WORKDIR /app/API
COPY Back/dist . COPY Back/dist .
COPY start-docker.sh /start-docker.sh COPY start-docker.sh /start-docker.sh
RUN chmod +x /start-docker.sh RUN chmod +x /start-docker.sh
RUN update-rc.d nginx defaults RUN update-rc.d nginx defaults
COPY nginx.conf /etc/nginx/sites-available/default COPY nginx.conf /etc/nginx/sites-available/default
VOLUME /app/API/Data VOLUME /app/API/Data
VOLUME /app/Front/config VOLUME /app/Front/config
CMD ["/start-docker.sh"] CMD ["/start-docker.sh"]

12
doc.txt
View File

@@ -1,6 +1,6 @@
To build an image "toto" with the version "0.1": docker build . -t skydivelogs:1.2.6 To build an image "toto" with the version "0.1": docker build . -t skydivelogs:1.3.2
To run ab image to container with volume : docker run -v C:\toto\logs\config:/app/Front/config -v C:\toto\logs\db:/app/API/Data -p 5080:80/tcp --name Test -it skydivelogs:0.1 To run ab image to container with volume : docker run -v C:\toto\logs\config:/app/Front/config -v C:\toto\logs\db:/app/API/Data -p 5080:80/tcp --name Test -it skydivelogs:0.1
docker save --output skydivelogs-1.2.6.tar skydivelogs:1.2.6 docker save --output skydivelogs-1.3.2.tar skydivelogs:1.3.2
scp -P 5022 skydivelogs-1.2.6.tar administrator@51.75.68.58:~ scp -P 5022 skydivelogs-1.3.2.tar administrator@51.75.68.58:~