diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 00000000..3729ff0c
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,25 @@
+**/.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
\ No newline at end of file
diff --git a/YANLib.sln b/YANLib.sln
index b0b6093b..be4e549a 100644
--- a/YANLib.sln
+++ b/YANLib.sln
@@ -41,6 +41,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{25EA463A-93D
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YANLib", "lib\YANLib\YANLib.csproj", "{8B38E857-59CA-446E-8E46-EAD98567E96E}"
EndProject
+Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{696811A9-FD68-4538-85AD-07BB9C30CFCA}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -107,6 +109,10 @@ Global
{8B38E857-59CA-446E-8E46-EAD98567E96E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B38E857-59CA-446E-8E46-EAD98567E96E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8B38E857-59CA-446E-8E46-EAD98567E96E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {696811A9-FD68-4538-85AD-07BB9C30CFCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {696811A9-FD68-4538-85AD-07BB9C30CFCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {696811A9-FD68-4538-85AD-07BB9C30CFCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {696811A9-FD68-4538-85AD-07BB9C30CFCA}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/docker-compose.dcproj b/docker-compose.dcproj
new file mode 100644
index 00000000..ca062f25
--- /dev/null
+++ b/docker-compose.dcproj
@@ -0,0 +1,18 @@
+
+
+
+ 2.1
+ Linux
+ 696811a9-fd68-4538-85ad-07bb9c30cfca
+ LaunchBrowser
+ {Scheme}://localhost:{ServicePort}
+ yanlib.httpapi.host
+
+
+
+ docker-compose.yml
+
+
+
+
+
\ No newline at end of file
diff --git a/docker-compose.override.yml b/docker-compose.override.yml
new file mode 100644
index 00000000..0b6a9cf8
--- /dev/null
+++ b/docker-compose.override.yml
@@ -0,0 +1,13 @@
+version: '3.4'
+
+services:
+ yanlib.httpapi.host:
+ environment:
+ - ASPNETCORE_ENVIRONMENT=Development
+ - ASPNETCORE_URLS=https://+:443;http://+:80
+ ports:
+ - "80"
+ - "443"
+ volumes:
+ - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
+ - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 00000000..ab667f17
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,8 @@
+version: '3.4'
+
+services:
+ yanlib.httpapi.host:
+ image: ${DOCKER_REGISTRY-}yanlibhttpapihost
+ build:
+ context: .
+ dockerfile: host/YANLib.HttpApi.Host/Dockerfile
diff --git a/host/YANLib.HttpApi.Host/Dockerfile b/host/YANLib.HttpApi.Host/Dockerfile
new file mode 100644
index 00000000..af778f16
--- /dev/null
+++ b/host/YANLib.HttpApi.Host/Dockerfile
@@ -0,0 +1,31 @@
+#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
+
+FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
+WORKDIR /app
+EXPOSE 80
+EXPOSE 443
+
+FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
+WORKDIR /src
+COPY ["NuGet.Config", "."]
+COPY ["lib/YANLib/nuget.config", "lib/YANLib/"]
+COPY ["host/YANLib.HttpApi.Host/YANLib.HttpApi.Host.csproj", "host/YANLib.HttpApi.Host/"]
+COPY ["src/YANLib.Application/YANLib.Application.csproj", "src/YANLib.Application/"]
+COPY ["lib/YANLib/YANLib.csproj", "lib/YANLib/"]
+COPY ["src/YANLib.Domain/YANLib.Domain.csproj", "src/YANLib.Domain/"]
+COPY ["src/YANLib.Domain.Shared/YANLib.Domain.Shared.csproj", "src/YANLib.Domain.Shared/"]
+COPY ["src/YANLib.Application.Contracts/YANLib.Application.Contracts.csproj", "src/YANLib.Application.Contracts/"]
+COPY ["src/YANLib.EntityFrameworkCore/YANLib.EntityFrameworkCore.csproj", "src/YANLib.EntityFrameworkCore/"]
+COPY ["src/YANLib.HttpApi/YANLib.HttpApi.csproj", "src/YANLib.HttpApi/"]
+RUN dotnet restore "host/YANLib.HttpApi.Host/YANLib.HttpApi.Host.csproj"
+COPY . .
+WORKDIR "/src/host/YANLib.HttpApi.Host"
+RUN dotnet build "YANLib.HttpApi.Host.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "YANLib.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "YANLib.HttpApi.Host.dll"]
\ No newline at end of file
diff --git a/host/YANLib.HttpApi.Host/Properties/launchSettings.json b/host/YANLib.HttpApi.Host/Properties/launchSettings.json
index 7ae47ee9..a253c7f9 100644
--- a/host/YANLib.HttpApi.Host/Properties/launchSettings.json
+++ b/host/YANLib.HttpApi.Host/Properties/launchSettings.json
@@ -1,12 +1,4 @@
{
- "iisSettings": {
- "windowsAuthentication": false,
- "anonymousAuthentication": true,
- "iisExpress": {
- "applicationUrl": "https://localhost:44380",
- "sslPort": 44380
- }
- },
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
@@ -18,10 +10,25 @@
"YANLib.HttpApi.Host": {
"commandName": "Project",
"launchBrowser": true,
- "applicationUrl": "https://localhost:44380",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "applicationUrl": "https://localhost:44380"
+ },
+ "Docker": {
+ "commandName": "Docker",
+ "launchBrowser": true,
+ "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+ "publishAllPorts": true,
+ "useSSL": true
+ }
+ },
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "https://localhost:44380",
+ "sslPort": 44380
}
}
}
\ No newline at end of file
diff --git a/host/YANLib.HttpApi.Host/YANLib.HttpApi.Host.csproj b/host/YANLib.HttpApi.Host/YANLib.HttpApi.Host.csproj
index f36e109b..1df6fe47 100644
--- a/host/YANLib.HttpApi.Host/YANLib.HttpApi.Host.csproj
+++ b/host/YANLib.HttpApi.Host/YANLib.HttpApi.Host.csproj
@@ -7,9 +7,13 @@
YANLib
true
YANLib-4681b4fd-151f-4221-84a4-929d86723e4c
+ Linux
+ ..\..
+ ..\..\docker-compose.dcproj
+
diff --git a/launchSettings.json b/launchSettings.json
new file mode 100644
index 00000000..93a56696
--- /dev/null
+++ b/launchSettings.json
@@ -0,0 +1,11 @@
+{
+ "profiles": {
+ "Docker Compose": {
+ "commandName": "DockerCompose",
+ "commandVersion": "1.0",
+ "serviceActions": {
+ "yanlib.httpapi.host": "StartDebugging"
+ }
+ }
+ }
+}
\ No newline at end of file