Ver Fonte

[WebApplicationSample] 新增 docker 支持

Roc há 4 anos atrás
pai
commit
35a8468189

+ 25 - 0
.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.md
+README.md

+ 1 - 1
Directory.Build.props

@@ -5,7 +5,7 @@
 		<Authors>Essensoft</Authors>
 		<Authors>Essensoft</Authors>
 		<Product>Paylink</Product>
 		<Product>Paylink</Product>
 		<Version>4.0.2</Version>
 		<Version>4.0.2</Version>
-		<NoWarn>$(NoWarn);CS1570;CS1591</NoWarn>
+		<NoWarn>$(NoWarn);CS1591</NoWarn>
 		<PackageIcon>Paylink.png</PackageIcon>
 		<PackageIcon>Paylink.png</PackageIcon>
 		<PackageProjectUrl>https://github.com/essensoft/paylink</PackageProjectUrl>
 		<PackageProjectUrl>https://github.com/essensoft/paylink</PackageProjectUrl>
 		<RepositoryType>git</RepositoryType>
 		<RepositoryType>git</RepositoryType>

+ 1 - 0
Paylink.sln

@@ -5,6 +5,7 @@ VisualStudioVersion = 16.0.29009.5
 MinimumVisualStudioVersion = 15.0.26124.0
 MinimumVisualStudioVersion = 15.0.26124.0
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0-solution-items", "0-solution-items", "{E2D9A588-E676-446B-BE7B-B3AAAD9FC9B6}"
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0-solution-items", "0-solution-items", "{E2D9A588-E676-446B-BE7B-B3AAAD9FC9B6}"
 	ProjectSection(SolutionItems) = preProject
 	ProjectSection(SolutionItems) = preProject
+		.dockerignore = .dockerignore
 		.editorconfig = .editorconfig
 		.editorconfig = .editorconfig
 		Directory.Build.props = Directory.Build.props
 		Directory.Build.props = Directory.Build.props
 		FUNDING.md = FUNDING.md
 		FUNDING.md = FUNDING.md

+ 24 - 0
samples/WebApplicationSample/Dockerfile

@@ -0,0 +1,24 @@
+#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 AS base
+WORKDIR /app
+EXPOSE 80
+
+FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
+WORKDIR /src
+COPY ["samples/WebApplicationSample/WebApplicationSample.csproj", "samples/WebApplicationSample/"]
+COPY ["src/Essensoft.Paylink.WeChatPay/Essensoft.Paylink.WeChatPay.csproj", "src/Essensoft.Paylink.WeChatPay/"]
+COPY ["src/Essensoft.Paylink.Security/Essensoft.Paylink.Security.csproj", "src/Essensoft.Paylink.Security/"]
+COPY ["src/Essensoft.Paylink.Alipay/Essensoft.Paylink.Alipay.csproj", "src/Essensoft.Paylink.Alipay/"]
+RUN dotnet restore "samples/WebApplicationSample/WebApplicationSample.csproj"
+COPY . .
+WORKDIR "/src/samples/WebApplicationSample"
+RUN dotnet build "WebApplicationSample.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "WebApplicationSample.csproj" -c Release -o /app/publish
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "WebApplicationSample.dll"]

+ 1 - 2
samples/WebApplicationSample/Program.cs

@@ -14,8 +14,7 @@ namespace WebApplicationSample
             Host.CreateDefaultBuilder(args)
             Host.CreateDefaultBuilder(args)
                 .ConfigureWebHostDefaults(webBuilder =>
                 .ConfigureWebHostDefaults(webBuilder =>
                 {
                 {
-                    webBuilder.UseStartup<Startup>()
-                              .UseUrls("http://*:5000"); // 默认监听 5000 端口。
+                    webBuilder.UseStartup<Startup>();
                 });
                 });
     }
     }
 }
 }

+ 7 - 1
samples/WebApplicationSample/Properties/launchSettings.json

@@ -1,4 +1,4 @@
-{
+{
   "iisSettings": {
   "iisSettings": {
     "windowsAuthentication": false,
     "windowsAuthentication": false,
     "anonymousAuthentication": true,
     "anonymousAuthentication": true,
@@ -22,6 +22,12 @@
         "ASPNETCORE_ENVIRONMENT": "Development"
         "ASPNETCORE_ENVIRONMENT": "Development"
       },
       },
       "applicationUrl": "http://localhost:5000/"
       "applicationUrl": "http://localhost:5000/"
+    },
+    "Docker": {
+      "commandName": "Docker",
+      "launchBrowser": true,
+      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+      "publishAllPorts": true
     }
     }
   }
   }
 }
 }

+ 3 - 0
samples/WebApplicationSample/WebApplicationSample.csproj

@@ -6,9 +6,12 @@
 		<SignAssembly>false</SignAssembly>
 		<SignAssembly>false</SignAssembly>
 		<GenerateDocumentationFile>false</GenerateDocumentationFile>
 		<GenerateDocumentationFile>false</GenerateDocumentationFile>
 		<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
 		<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
+		<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
+		<DockerfileContext>..\..</DockerfileContext>
 	</PropertyGroup>
 	</PropertyGroup>
 
 
 	<ItemGroup>
 	<ItemGroup>
+		<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.13" />
 		<PackageReference Include="QRCoder" Version="1.4.1" />
 		<PackageReference Include="QRCoder" Version="1.4.1" />
 	</ItemGroup>
 	</ItemGroup>