diff --git a/server/.dockerignore b/server/.dockerignore
new file mode 100644
index 0000000..fe1152b
--- /dev/null
+++ b/server/.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/server/src/XiangYi.AdminApi/Dockerfile b/server/src/XiangYi.AdminApi/Dockerfile
new file mode 100644
index 0000000..a07be6e
--- /dev/null
+++ b/server/src/XiangYi.AdminApi/Dockerfile
@@ -0,0 +1,33 @@
+# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。
+
+# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时
+FROM mcr.microsoft.com/dotnet/aspnet:8.0.12 AS base
+USER $APP_UID
+WORKDIR /app
+EXPOSE 8080
+
+
+# 此阶段用于生成服务项目
+FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
+ARG BUILD_CONFIGURATION=Release
+WORKDIR /src
+COPY ["Directory.Build.props", "."]
+COPY ["src/XiangYi.AdminApi/XiangYi.AdminApi.csproj", "src/XiangYi.AdminApi/"]
+COPY ["src/XiangYi.Application/XiangYi.Application.csproj", "src/XiangYi.Application/"]
+COPY ["src/XiangYi.Core/XiangYi.Core.csproj", "src/XiangYi.Core/"]
+COPY ["src/XiangYi.Infrastructure/XiangYi.Infrastructure.csproj", "src/XiangYi.Infrastructure/"]
+RUN dotnet restore "./src/XiangYi.AdminApi/XiangYi.AdminApi.csproj"
+COPY . .
+WORKDIR "/src/src/XiangYi.AdminApi"
+RUN dotnet build "./XiangYi.AdminApi.csproj" -c $BUILD_CONFIGURATION -o /app/build
+
+# 此阶段用于发布要复制到最终阶段的服务项目
+FROM build AS publish
+ARG BUILD_CONFIGURATION=Release
+RUN dotnet publish "./XiangYi.AdminApi.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
+
+# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值)
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "XiangYi.AdminApi.dll"]
\ No newline at end of file
diff --git a/server/src/XiangYi.AdminApi/Properties/launchSettings.json b/server/src/XiangYi.AdminApi/Properties/launchSettings.json
index 3b7d805..9fafb30 100644
--- a/server/src/XiangYi.AdminApi/Properties/launchSettings.json
+++ b/server/src/XiangYi.AdminApi/Properties/launchSettings.json
@@ -2,12 +2,20 @@
"profiles": {
"XiangYi.AdminApi": {
"commandName": "Project",
- "dotnetRunMessages": true,
- "launchBrowser": false,
- "applicationUrl": "http://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "http://localhost:5001"
+ },
+ "Container (Dockerfile)": {
+ "commandName": "Docker",
+ "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+ "environmentVariables": {
+ "ASPNETCORE_HTTP_PORTS": "8080"
+ },
+ "publishAllPorts": true,
+ "useSSL": false
}
}
}
\ No newline at end of file
diff --git a/server/src/XiangYi.AdminApi/XiangYi.AdminApi.csproj b/server/src/XiangYi.AdminApi/XiangYi.AdminApi.csproj
index 13a6cdc..59e2c97 100644
--- a/server/src/XiangYi.AdminApi/XiangYi.AdminApi.csproj
+++ b/server/src/XiangYi.AdminApi/XiangYi.AdminApi.csproj
@@ -7,6 +7,8 @@
XiangYi.AdminApi
true
$(NoWarn);1591
+ Linux
+ ..\..
@@ -14,6 +16,7 @@
+
diff --git a/server/src/XiangYi.AppApi/Dockerfile b/server/src/XiangYi.AppApi/Dockerfile
new file mode 100644
index 0000000..8d374f0
--- /dev/null
+++ b/server/src/XiangYi.AppApi/Dockerfile
@@ -0,0 +1,33 @@
+# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。
+
+# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时
+FROM mcr.microsoft.com/dotnet/aspnet:8.0.12 AS base
+WORKDIR /app
+EXPOSE 8080
+EXPOSE 8081
+
+
+# 此阶段用于生成服务项目
+FROM mcr.microsoft.com/dotnet/sdk:8.0.412 AS build
+ARG BUILD_CONFIGURATION=Release
+WORKDIR /src
+COPY ["Directory.Build.props", "."]
+COPY ["src/XiangYi.AppApi/XiangYi.AppApi.csproj", "src/XiangYi.AppApi/"]
+COPY ["src/XiangYi.Application/XiangYi.Application.csproj", "src/XiangYi.Application/"]
+COPY ["src/XiangYi.Core/XiangYi.Core.csproj", "src/XiangYi.Core/"]
+COPY ["src/XiangYi.Infrastructure/XiangYi.Infrastructure.csproj", "src/XiangYi.Infrastructure/"]
+RUN dotnet restore "./src/XiangYi.AppApi/XiangYi.AppApi.csproj"
+COPY . .
+WORKDIR "/src/src/XiangYi.AppApi"
+RUN dotnet build "./XiangYi.AppApi.csproj" -c $BUILD_CONFIGURATION -o /app/build
+
+# 此阶段用于发布要复制到最终阶段的服务项目
+FROM build AS publish
+ARG BUILD_CONFIGURATION=Release
+RUN dotnet publish "./XiangYi.AppApi.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
+
+# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值)
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "XiangYi.AppApi.dll"]
\ No newline at end of file
diff --git a/server/src/XiangYi.AppApi/Properties/launchSettings.json b/server/src/XiangYi.AppApi/Properties/launchSettings.json
index 1fe7740..21f0f82 100644
--- a/server/src/XiangYi.AppApi/Properties/launchSettings.json
+++ b/server/src/XiangYi.AppApi/Properties/launchSettings.json
@@ -2,23 +2,34 @@
"profiles": {
"http": {
"commandName": "Project",
- "dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
- "applicationUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "http://localhost:5000"
},
"https": {
"commandName": "Project",
- "dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
- "applicationUrl": "https://localhost:7000;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "https://localhost:7000;http://localhost:5000"
+ },
+ "Container (Dockerfile)": {
+ "commandName": "Docker",
+ "launchBrowser": true,
+ "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
+ "environmentVariables": {
+ "ASPNETCORE_HTTPS_PORTS": "8081",
+ "ASPNETCORE_HTTP_PORTS": "8080"
+ },
+ "publishAllPorts": true,
+ "useSSL": true
}
}
}
\ No newline at end of file
diff --git a/server/src/XiangYi.AppApi/XiangYi.AppApi.csproj b/server/src/XiangYi.AppApi/XiangYi.AppApi.csproj
index 80ce75b..5ccf190 100644
--- a/server/src/XiangYi.AppApi/XiangYi.AppApi.csproj
+++ b/server/src/XiangYi.AppApi/XiangYi.AppApi.csproj
@@ -7,6 +7,9 @@
XiangYi.AppApi
true
$(NoWarn);1591
+ a5d2bdea-6712-4eb5-a74a-62d88cc66b4b
+ Linux
+ ..\..
@@ -15,6 +18,7 @@
+