diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..3729ff0
--- /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/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj b/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj
index 86fc78b..c6dbf9e 100644
--- a/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj
+++ b/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj
@@ -6,9 +6,16 @@
enable
en-US
true
+ 0ee783ac-de1b-4ae2-96ce-773431a22f71
+ Linux
+
+
+
+
+
diff --git a/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj.user b/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj.user
index cf47803..96e7a74 100644
--- a/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj.user
+++ b/BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj.user
@@ -4,6 +4,6 @@
ProjectDebugger
- BPA.SAAS.Manage.Web.Entry
+ Docker
\ No newline at end of file
diff --git a/BPA.SAAS.Manage.Web.Entry/Properties/launchSettings.json b/BPA.SAAS.Manage.Web.Entry/Properties/launchSettings.json
index 63fa388..7a77227 100644
--- a/BPA.SAAS.Manage.Web.Entry/Properties/launchSettings.json
+++ b/BPA.SAAS.Manage.Web.Entry/Properties/launchSettings.json
@@ -1,31 +1,36 @@
-{
- "$schema": "http://json.schemastore.org/launchsettings.json",
- "iisSettings": {
- "windowsAuthentication": false,
- "anonymousAuthentication": true,
- "iisExpress": {
- "applicationUrl": "http://localhost:53785",
- "sslPort": 44342
- }
- },
+{
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
- "launchUrl": "",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"BPA.SAAS.Manage.Web.Entry": {
"commandName": "Project",
- "dotnetRunMessages": true,
"launchBrowser": true,
- "launchUrl": "",
- "applicationUrl": "http://192.168.1.19:5006",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "http://192.168.1.19:5006"
+ },
+ "Docker": {
+ "commandName": "Docker",
+ "launchBrowser": true,
+ "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+ "publishAllPorts": true,
+ "useSSL": true
+ }
+ },
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:53785",
+ "sslPort": 44342
}
}
}
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..8eca967
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,26 @@
+#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 ["BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj", "BPA.SAAS.Manage.Web.Entry/"]
+COPY ["BPA.SAAS.Manage.Web.Core/BPA.SAAS.Manage.Web.Core.csproj", "BPA.SAAS.Manage.Web.Core/"]
+COPY ["BPA.SAAS.Manage.Application/BPA.SAAS.Manage.Application.csproj", "BPA.SAAS.Manage.Application/"]
+COPY ["BPA.SAAS.Manage.Comm/BPA.SAAS.Manage.Comm.csproj", "BPA.SAAS.Manage.Comm/"]
+COPY ["BPA.SAAS.Manage.Core/BPA.SAAS.Manage.Core.csproj", "BPA.SAAS.Manage.Core/"]
+RUN dotnet restore "BPA.SAAS.Manage.Web.Entry/BPA.SAAS.Manage.Web.Entry.csproj"
+COPY . .
+WORKDIR "/src/BPA.SAAS.Manage.Web.Entry"
+RUN dotnet build "BPA.SAAS.Manage.Web.Entry.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "BPA.SAAS.Manage.Web.Entry.csproj" -c Release -o /app/publish /p:UseAppHost=false
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "BPA.SAAS.Manage.Web.Entry.dll"]
\ No newline at end of file
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..ea2469a
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,126 @@
+
+pipeline{
+ agent any
+ parameters {
+ choice(
+ description: 'saasdev1:开发环境1 \n dev2:开发环境2 \n dev3:生产环境',
+ name: 'environment',
+ choices: ['saasdev1', 'dev2', 'dev3']
+ )
+
+ choice(
+ description: '执行操作(发布|回滚)',
+ name: 'operation',
+ choices: ['develop', 'rollback']
+ )
+
+ choice(
+ description: '分支名',
+ name: 'branchName',
+ choices: ['master']
+ )
+
+ string(
+ name: 'tag',
+ defaultValue: '',
+ description: '版本tag'
+ )
+
+ }
+
+ stages
+ {
+ stage('Prepare') {
+ steps {
+ script{
+ echo "1.Prepare Stage"
+ echo "当前环境${params.environment}"
+ if(params.operation=='develop')
+ {
+ checkout scm
+ script {
+ build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
+ if (env.BRANCH_NAME != 'master') {
+ build_tag = "${env.BRANCH_NAME}-${build_tag}"
+ }
+ }
+ }
+ else{
+ script {
+ if(params.branchName!= 'master')
+ {
+ build_tag = "${params.branchName}-${params.tag}"
+ }
+ else
+ {
+ build_tag="${params.tag}"
+ }
+ }
+ }
+ }
+ }
+ }
+ stage('Test') {
+ steps {
+ script{
+ echo "2.Test Stage"
+ }
+ }
+
+ }
+ stage('Build') {
+ steps {
+ script{
+ echo "3.Build Docker Image Stage"
+ if(params.operation=='develop')
+ {
+
+ sh "docker build -t 10.2.1.24:10242/bpa/manage:${build_tag} ."
+
+ }
+ }
+ }
+ }
+
+
+ stage('Push') {
+ steps {
+ script{
+ echo "4.Push Docker Image Stage"
+ withCredentials([usernamePassword(credentialsId: 'harbor', passwordVariable: 'harborPassword', usernameVariable: 'harborUser')]) {
+ sh "docker login -u ${harborUser} -p ${harborPassword} 10.2.1.24:10242"
+ if(params.operation=='develop')
+ {
+ sh "docker push 10.2.1.24:10242/bpa/manage:${build_tag}"
+
+ }
+ }
+ }
+ }
+
+
+
+
+ }
+ stage('Deploy') {
+
+ steps {
+ script{
+ echo "5. Deploy Stage"
+ // if(params.environment=='test')
+ // {
+ // input "确认要部署线上环境吗?"
+ // }
+
+sh "sed -i 's//${build_tag}/' k8s_manage.yaml"
+ sh "sed -i 's//${env.BRANCH_NAME}/' k8s_manage.yaml"
+ sh "sed -i 's//${params.environment}/' k8s_manage.yaml"
+ sh "kubectl apply -f k8s_manage.yaml --record"
+
+
+
+ }
+ }
+ }
+ }
+}
diff --git a/NuGet.config b/NuGet.config
new file mode 100644
index 0000000..b149801
--- /dev/null
+++ b/NuGet.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/k8s_manage.yaml b/k8s_manage.yaml
new file mode 100644
index 0000000..2ea99d2
--- /dev/null
+++ b/k8s_manage.yaml
@@ -0,0 +1,64 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: manage
+ namespace: kube-
+spec:
+
+ selector:
+ matchLabels:
+ app: manage
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: manage
+ spec:
+ containers:
+ - image: 10.2.1.24:10242/bpa/manage:
+ imagePullPolicy: IfNotPresent
+ name: manage
+ env:
+ - name: branch
+ value:
+ - name: TZ
+ value: Asia/Shanghai
+ ports:
+ - containerPort: 80
+ protocol: TCP
+ volumeMounts:
+ - mountPath: "/app/appsettings.json"
+ name: manage-config
+ readOnly: true
+ subPath: appsetting
+ - mountPath: "/etc/localtime"
+ name: timezone
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "112Mi"
+ limits:
+ cpu: "500m"
+ memory: "512Mi"
+ volumes:
+ - name: manage-config
+ configMap:
+ name: manage-config
+ - name: timezone
+ hostPath:
+ path: /usr/share/zoneinfo/Asia/Shanghai
+---
+kind: Service
+apiVersion: v1
+metadata:
+ labels:
+ app: manage
+ name: manage
+ namespace: kube-
+spec:
+ type: ClusterIP
+ ports:
+ - port: 80
+ name: http
+ selector:
+ app: manage