40 changed files with 1019 additions and 47 deletions
@ -1,58 +1,85 @@ |
|||||
param ($version='1.0') |
param ($version='latest') |
||||
|
|
||||
$currentFolder = $PSScriptRoot |
$currentFolder = $PSScriptRoot |
||||
$slnFolder = Join-Path $currentFolder "../" |
$slnFolder = Join-Path $currentFolder "../" |
||||
|
# Apps |
||||
$webAppFolder = Join-Path $slnFolder "apps/angular" |
$webAppFolder = Join-Path $slnFolder "apps/angular" |
||||
$authserverFolder = Join-Path $slnFolder "apps/auth-server/src/EShopOnAbp.AuthServer" |
$authserverFolder = Join-Path $slnFolder "apps/auth-server/src/EShopOnAbp.AuthServer" |
||||
$publicWebFolder = Join-Path $slnFolder "apps/public-web/src/EShopOnAbp.PublicWeb" |
$publicWebFolder = Join-Path $slnFolder "apps/public-web/src/EShopOnAbp.PublicWeb" |
||||
|
# Gateways |
||||
$webGatewayFolder = Join-Path $slnFolder "gateways/web/src/EShopOnAbp.WebGateway" |
$webGatewayFolder = Join-Path $slnFolder "gateways/web/src/EShopOnAbp.WebGateway" |
||||
$webPublicGatewayFolder = Join-Path $slnFolder "gateways/web-public/src/EShopOnAbp.WebPublicGateway" |
$webPublicGatewayFolder = Join-Path $slnFolder "gateways/web-public/src/EShopOnAbp.WebPublicGateway" |
||||
|
# Microservices |
||||
$identityServiceFolder = Join-Path $slnFolder "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host" |
$identityServiceFolder = Join-Path $slnFolder "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host" |
||||
$administrationServiceFolder = Join-Path $slnFolder "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host" |
$administrationServiceFolder = Join-Path $slnFolder "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host" |
||||
|
$basketServiceFolder = Join-Path $slnFolder "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host" |
||||
|
$catalogServiceFolder = Join-Path $slnFolder "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host" |
||||
|
$paymentServiceFolder = Join-Path $slnFolder "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host" |
||||
|
$orderingServiceFolder = Join-Path $slnFolder "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host" |
||||
|
|
||||
|
$total = 11 |
||||
|
|
||||
Write-Host "===== BUILDING APPLICATIONS =====" -ForegroundColor Yellow |
Write-Host "===== BUILDING APPLICATIONS =====" -ForegroundColor Yellow |
||||
|
|
||||
### Angular WEB App |
### Angular WEB App |
||||
Write-Host "*** BUILDING ANGULAR WEB APPLICATION 1/7 ***" -ForegroundColor Green |
Write-Host "*** BUILDING ANGULAR WEB APPLICATION 1/$total ***" -ForegroundColor Green |
||||
Set-Location $webAppFolder |
Set-Location $webAppFolder |
||||
docker build -f "$webAppFolder/Dockerfile" -t eshoponabp/app-web:$version . |
docker build -f "$webAppFolder/Dockerfile" -t eshoponabp/app-web:$version . |
||||
|
|
||||
### AUTH-SERVER |
### AUTH-SERVER |
||||
Write-Host "**************** BUILDING AUTH-SERVER 2/7 ****************" -ForegroundColor Green |
Write-Host "**************** BUILDING AUTH-SERVER 2/$total ****************" -ForegroundColor Green |
||||
Set-Location $slnFolder |
Set-Location $slnFolder |
||||
docker build -f "$authserverFolder/Dockerfile" -t eshoponabp/app-authserver:$version . |
docker build -f "$authserverFolder/Dockerfile" -t eshoponabp/app-authserver:$version . |
||||
|
|
||||
### PUBLIC-WEB |
### PUBLIC-WEB |
||||
Write-Host "**************** BUILDING WEB-PUBLIC 3/7 ****************" -ForegroundColor Green |
Write-Host "**************** BUILDING WEB-PUBLIC 3/$total ****************" -ForegroundColor Green |
||||
Set-Location $slnFolder |
Set-Location $slnFolder |
||||
docker build -f "$publicWebFolder/Dockerfile" -t eshoponabp/app-publicweb:$version . |
docker build -f "$publicWebFolder/Dockerfile" -t eshoponabp/app-publicweb:$version . |
||||
|
|
||||
Write-Host "===== BUILDING GATEWAYS =====" -ForegroundColor Yellow |
Write-Host "===== BUILDING GATEWAYS =====" -ForegroundColor Yellow |
||||
|
|
||||
### WEB-GATEWAY |
### WEB-GATEWAY |
||||
Write-Host "**************** BUILDING WEB-GATEWAY 4/7 ****************" -ForegroundColor Green |
Write-Host "**************** BUILDING WEB-GATEWAY 4/$total ****************" -ForegroundColor Green |
||||
Set-Location $slnFolder |
Set-Location $slnFolder |
||||
docker build -f "$webGatewayFolder/Dockerfile" -t eshoponabp/gateway-web:$version . |
docker build -f "$webGatewayFolder/Dockerfile" -t eshoponabp/gateway-web:$version . |
||||
|
|
||||
### PUBLICWEB-GATEWAY |
### PUBLICWEB-GATEWAY |
||||
Write-Host "**************** BUILDING WEB-PUBLIC-GATEWAY 5/7 ****************" -ForegroundColor Green |
Write-Host "**************** BUILDING WEB-PUBLIC-GATEWAY 5/$total ****************" -ForegroundColor Green |
||||
Set-Location $slnFolder |
Set-Location $slnFolder |
||||
docker build -f "$webPublicGatewayFolder/Dockerfile" -t eshoponabp/gateway-web-public:$version . |
docker build -f "$webPublicGatewayFolder/Dockerfile" -t eshoponabp/gateway-web-public:$version . |
||||
|
|
||||
Write-Host "===== BUILDING MICROSERVICES =====" -ForegroundColor Yellow |
Write-Host "===== BUILDING MICROSERVICES =====" -ForegroundColor Yellow |
||||
|
|
||||
### IDENTITY-SERVICE |
### IDENTITY-SERVICE |
||||
Write-Host "**************** BUILDING IDENTITY-SERVICE 6/7 ****************" -ForegroundColor Green |
Write-Host "**************** BUILDING IDENTITY-SERVICE 6/$total ****************" -ForegroundColor Green |
||||
Set-Location $slnFolder |
Set-Location $slnFolder |
||||
docker build -f "$identityServiceFolder/Dockerfile" -t eshoponabp/service-identity:$version . |
docker build -f "$identityServiceFolder/Dockerfile" -t eshoponabp/service-identity:$version . |
||||
|
|
||||
### ADMINISTRATION-SERVICE |
### ADMINISTRATION-SERVICE |
||||
Write-Host "**************** BUILDING ADMINISTRATION-SERVICE 7/7 ****************" -ForegroundColor Green |
Write-Host "**************** BUILDING ADMINISTRATION-SERVICE 7/$total ****************" -ForegroundColor Green |
||||
Set-Location $slnFolder |
Set-Location $slnFolder |
||||
docker build -f "$administrationServiceFolder/Dockerfile" -t eshoponabp/service-administration:$version . |
docker build -f "$administrationServiceFolder/Dockerfile" -t eshoponabp/service-administration:$version . |
||||
|
|
||||
|
### BASKET-SERVICE |
||||
|
Write-Host "**************** BUILDING BASKET-SERVICE 8/$total ****************" -ForegroundColor Green |
||||
|
Set-Location $slnFolder |
||||
|
docker build -f "$basketServiceFolder/Dockerfile" -t eshoponabp/service-basket:$version . |
||||
|
|
||||
|
### CATALOG-SERVICE |
||||
|
Write-Host "**************** BUILDING CATALOG-SERVICE 9/$total ****************" -ForegroundColor Green |
||||
|
Set-Location $slnFolder |
||||
|
docker build -f "$catalogServiceFolder/Dockerfile" -t eshoponabp/service-catalog:$version . |
||||
|
|
||||
|
### PAYMENT-SERVICE |
||||
|
Write-Host "**************** BUILDING PAYMENT-SERVICE 10/$total ****************" -ForegroundColor Green |
||||
|
Set-Location $slnFolder |
||||
|
docker build -f "$paymentServiceFolder/Dockerfile" -t eshoponabp/service-payment:$version . |
||||
|
|
||||
|
### ORDERING-SERVICE |
||||
|
Write-Host "**************** BUILDING ORDERING-SERVICE 11/$total ****************" -ForegroundColor Green |
||||
|
Set-Location $slnFolder |
||||
|
docker build -f "$orderingServiceFolder/Dockerfile" -t eshoponabp/service-ordering:$version . |
||||
|
|
||||
### ALL COMPLETED |
### ALL COMPLETED |
||||
Write-Host "ALL COMPLETED" -ForegroundColor Green |
Write-Host "ALL COMPLETED" -ForegroundColor Green |
||||
Set-Location $currentFolder |
Set-Location $currentFolder |
||||
@ -0,0 +1,6 @@ |
|||||
|
apiVersion: v2 |
||||
|
name: basket |
||||
|
appVersion: "1.0" |
||||
|
description: eShopOnAbp Basket Microservice |
||||
|
version: 1.0.0 |
||||
|
type: application |
||||
@ -0,0 +1,55 @@ |
|||||
|
apiVersion: apps/v1 |
||||
|
kind: Deployment |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
selector: |
||||
|
matchLabels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
template: |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
containers: |
||||
|
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }} |
||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
ports: |
||||
|
- name: http |
||||
|
containerPort: 80 |
||||
|
- name: https |
||||
|
containerPort: 443 |
||||
|
env: |
||||
|
- name: App__SelfUrl |
||||
|
value: "{{ .Values.config.selfUrl }}" |
||||
|
- name: App__CorsOrigins |
||||
|
value: "{{ .Values.config.corsOrigins }}" |
||||
|
- name: "ConnectionStrings__AdministrationService" |
||||
|
value: {{ .Values.config.connectionStrings.administrationService }} |
||||
|
- name: "DOTNET_ENVIRONMENT" |
||||
|
value: "{{ .Values.config.dotnetEnv }}" |
||||
|
- name: "Redis__Configuration" |
||||
|
value: "{{ .Values.config.redisHost }}" |
||||
|
- name: "RabbitMQ__Connections__Default__HostName" |
||||
|
value: "{{ .Values.config.rabbitmqHost }}" |
||||
|
- name: "ElasticSearch__Url" |
||||
|
value: "{{ .Values.config.elasticsearchHost }}" |
||||
|
- name: "AuthServer__Authority" |
||||
|
value: "{{ .Values.config.authServer.authority }}" |
||||
|
- name: "AuthServer__RequireHttpsMetadata" |
||||
|
value: "{{ .Values.config.authServer.requireHttpsMetadata }}" |
||||
|
- name: "AuthServer__SwaggerClientId" |
||||
|
value: "{{ .Values.config.swaggerClientId }}" |
||||
|
- name: "AuthServer__SwaggerClientSecret" |
||||
|
value: "{{ .Values.config.swaggerClientSecret }}" |
||||
|
- name: "StringEncryption__DefaultPassPhrase" |
||||
|
value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" |
||||
|
- name: "RemoteServices__Catalog__BaseUrl" |
||||
|
value: "{{ .Values.config.remoteServices.catalogBaseUrl }}" |
||||
|
- name: "RemoteServices__Catalog__GrpcUrl" |
||||
|
value: "{{ .Values.config.remoteServices.catalogGrpcUrl }}" |
||||
|
{{- if .Values.env }} |
||||
|
{{ toYaml .Values.env | indent 8 }} |
||||
|
{{- end }} |
||||
|
|
||||
@ -0,0 +1,27 @@ |
|||||
|
apiVersion: networking.k8s.io/v1 |
||||
|
kind: Ingress |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress |
||||
|
annotations: |
||||
|
kubernetes.io/ingress.class: "nginx" |
||||
|
nginx.ingress.kubernetes.io/rewrite-target: / |
||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |
||||
|
nginx.ingress.kubernetes.io/proxy-buffer-size: 32k |
||||
|
nginx.ingress.kubernetes.io/proxy-buffers-number: "8" |
||||
|
cert-manager.io/cluster-issuer: letsencrypt |
||||
|
spec: |
||||
|
tls: |
||||
|
- hosts: |
||||
|
- {{ .Values.ingress.host }} |
||||
|
secretName: {{ .Values.ingress.tlsSecret }} |
||||
|
rules: |
||||
|
- host: "{{ .Values.ingress.host }}" |
||||
|
http: |
||||
|
paths: |
||||
|
- path: / |
||||
|
pathType: Prefix |
||||
|
backend: |
||||
|
service: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
port: |
||||
|
number: 80 |
||||
@ -0,0 +1,14 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: Service |
||||
|
metadata: |
||||
|
labels: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
ports: |
||||
|
- name: "80" |
||||
|
port: 80 |
||||
|
- name: "443" |
||||
|
port: 443 |
||||
|
selector: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
@ -0,0 +1,30 @@ |
|||||
|
config: |
||||
|
selfUrl: # https://eshop-st-basket |
||||
|
corsOrigins: # https://eshop-st-gateway-web,https://eshop-st-gateway-public-web,https://eshop-st-public |
||||
|
connectionStrings: |
||||
|
administrationService: # |
||||
|
authServer: |
||||
|
authority: http://eshop-st-authserver |
||||
|
requireHttpsMetadata: "false" |
||||
|
swaggerClientId: "WebGateway_Swagger" |
||||
|
swaggerClientSecret: "1q2w3e*" |
||||
|
dotnetEnv: Staging |
||||
|
redisHost: es-st-redis |
||||
|
rabbitmqHost: es-st-rabbitmq |
||||
|
elasticsearchHost: es-st-elasticsearch |
||||
|
stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 |
||||
|
remoteServices: |
||||
|
catalogBaseUrl: # |
||||
|
catalogGrpcUrl: # |
||||
|
|
||||
|
ingress: |
||||
|
host: eshop-st-basket |
||||
|
tlsSecret: eshop-demo-tls |
||||
|
|
||||
|
image: |
||||
|
repository: eshoponabp/service-basket |
||||
|
tag: latest |
||||
|
pullPolicy: IfNotPresent |
||||
|
|
||||
|
env: {} |
||||
|
|
||||
@ -0,0 +1,6 @@ |
|||||
|
apiVersion: v2 |
||||
|
name: catalog |
||||
|
appVersion: "1.0" |
||||
|
description: eShopOnAbp Catalog Microservice |
||||
|
version: 1.0.0 |
||||
|
type: application |
||||
@ -0,0 +1,64 @@ |
|||||
|
apiVersion: apps/v1 |
||||
|
kind: Deployment |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
selector: |
||||
|
matchLabels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
template: |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
containers: |
||||
|
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }} |
||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
ports: |
||||
|
- name: http |
||||
|
containerPort: 80 |
||||
|
- name: https |
||||
|
containerPort: 443 |
||||
|
- name: grpc |
||||
|
containerPort: 81 |
||||
|
protocol: TCP |
||||
|
env: |
||||
|
- name: App__SelfUrl |
||||
|
value: "{{ .Values.config.selfUrl }}" |
||||
|
- name: App__CorsOrigins |
||||
|
value: "{{ .Values.config.corsOrigins }}" |
||||
|
- name: "ConnectionStrings__CatalogService" |
||||
|
value: {{ .Values.config.connectionStrings.catalogService }} |
||||
|
- name: "ConnectionStrings__AdministrationService" |
||||
|
value: {{ .Values.config.connectionStrings.administrationService }} |
||||
|
- name: "DOTNET_ENVIRONMENT" |
||||
|
value: "{{ .Values.config.dotnetEnv }}" |
||||
|
- name: "Redis__Configuration" |
||||
|
value: "{{ .Values.config.redisHost }}" |
||||
|
- name: "RabbitMQ__Connections__Default__HostName" |
||||
|
value: "{{ .Values.config.rabbitmqHost }}" |
||||
|
- name: "ElasticSearch__Url" |
||||
|
value: "{{ .Values.config.elasticsearchHost }}" |
||||
|
- name: "AuthServer__Authority" |
||||
|
value: "{{ .Values.config.authServer.authority }}" |
||||
|
- name: "AuthServer__RequireHttpsMetadata" |
||||
|
value: "{{ .Values.config.authServer.requireHttpsMetadata }}" |
||||
|
- name: "AuthServer__SwaggerClientId" |
||||
|
value: "{{ .Values.config.authServer.swaggerClientId }}" |
||||
|
- name: "AuthServer__SwaggerClientSecret" |
||||
|
value: "{{ .Values.config.authServer.swaggerClientSecret }}" |
||||
|
- name: "StringEncryption__DefaultPassPhrase" |
||||
|
value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" |
||||
|
- name: "Kestrel__Endpoints__Http__Url" |
||||
|
value: "{{ .Values.config.kestrel.httpUrl }}" |
||||
|
- name: "Kestrel__Endpoints__Http__Protocols" |
||||
|
value: "{{ .Values.config.kestrel.httpProtocols }}" |
||||
|
- name: "Kestrel__Endpoints__gRPC__Url" |
||||
|
value: "{{ .Values.config.kestrel.grpcUrl }}" |
||||
|
- name: "Kestrel__Endpoints__gRPC__Protocols" |
||||
|
value: "{{ .Values.config.kestrel.grpcProtocols }}" |
||||
|
{{- if .Values.env }} |
||||
|
{{ toYaml .Values.env | indent 8 }} |
||||
|
{{- end }} |
||||
|
|
||||
@ -0,0 +1,27 @@ |
|||||
|
apiVersion: networking.k8s.io/v1 |
||||
|
kind: Ingress |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress |
||||
|
annotations: |
||||
|
kubernetes.io/ingress.class: "nginx" |
||||
|
nginx.ingress.kubernetes.io/rewrite-target: / |
||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |
||||
|
nginx.ingress.kubernetes.io/proxy-buffer-size: 32k |
||||
|
nginx.ingress.kubernetes.io/proxy-buffers-number: "8" |
||||
|
cert-manager.io/cluster-issuer: letsencrypt |
||||
|
spec: |
||||
|
tls: |
||||
|
- hosts: |
||||
|
- {{ .Values.ingress.host }} |
||||
|
secretName: {{ .Values.ingress.tlsSecret }} |
||||
|
rules: |
||||
|
- host: "{{ .Values.ingress.host }}" |
||||
|
http: |
||||
|
paths: |
||||
|
- path: / |
||||
|
pathType: Prefix |
||||
|
backend: |
||||
|
service: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
port: |
||||
|
number: 80 |
||||
@ -0,0 +1,18 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: Service |
||||
|
metadata: |
||||
|
labels: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
ports: |
||||
|
- name: "80" |
||||
|
port: 80 |
||||
|
- name: "443" |
||||
|
port: 443 |
||||
|
- port: {{ .Values.config.grpcPort }} |
||||
|
targetPort: grpc |
||||
|
protocol: TCP |
||||
|
name: grpc |
||||
|
selector: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
@ -0,0 +1,35 @@ |
|||||
|
config: |
||||
|
selfUrl: # https://eshop-st-catalog |
||||
|
corsOrigins: # https://eshop-st-gateway-web,https://eshop-st-gateway-public-web,https://eshop-st-public,https://eshop-st-web |
||||
|
connectionStrings: |
||||
|
catalogService: # |
||||
|
administrationService: # |
||||
|
authServer: |
||||
|
authority: http://eshop-st-authserver |
||||
|
requireHttpsMetadata: "false" |
||||
|
swaggerClientId: WebGateway_Swagger |
||||
|
swaggerClientSecret: "1q2w3e*" |
||||
|
dotnetEnv: Staging |
||||
|
redisHost: es-st-redis |
||||
|
rabbitmqHost: es-st-rabbitmq |
||||
|
elasticsearchHost: es-st-elasticsearch |
||||
|
stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 |
||||
|
grpcPort: 81 |
||||
|
kestrel: |
||||
|
httpUrl: # |
||||
|
httpProtocols: Http1AndHttp2 |
||||
|
grpcUrl: # |
||||
|
grpcProtocols: Http2 |
||||
|
|
||||
|
|
||||
|
ingress: |
||||
|
host: eshop-st-catalog |
||||
|
tlsSecret: eshop-demo-tls |
||||
|
|
||||
|
image: |
||||
|
repository: eshoponabp/service-catalog |
||||
|
tag: latest |
||||
|
pullPolicy: IfNotPresent |
||||
|
|
||||
|
env: {} |
||||
|
|
||||
@ -0,0 +1,6 @@ |
|||||
|
apiVersion: v2 |
||||
|
name: ordering |
||||
|
appVersion: "1.0" |
||||
|
description: eShopOnAbp Ordering Microservice |
||||
|
version: 1.0.0 |
||||
|
type: application |
||||
@ -0,0 +1,53 @@ |
|||||
|
apiVersion: apps/v1 |
||||
|
kind: Deployment |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
selector: |
||||
|
matchLabels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
template: |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
containers: |
||||
|
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }} |
||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
ports: |
||||
|
- name: http |
||||
|
containerPort: 80 |
||||
|
- name: https |
||||
|
containerPort: 443 |
||||
|
env: |
||||
|
- name: App__SelfUrl |
||||
|
value: "{{ .Values.config.selfUrl }}" |
||||
|
- name: App__CorsOrigins |
||||
|
value: "{{ .Values.config.corsOrigins }}" |
||||
|
- name: "ConnectionStrings__OrderingService" |
||||
|
value: {{ .Values.config.connectionStrings.orderingService }} |
||||
|
- name: "ConnectionStrings__AdministrationService" |
||||
|
value: {{ .Values.config.connectionStrings.administrationService }} |
||||
|
- name: "DOTNET_ENVIRONMENT" |
||||
|
value: "{{ .Values.config.dotnetEnv }}" |
||||
|
- name: "Redis__Configuration" |
||||
|
value: "{{ .Values.config.redisHost }}" |
||||
|
- name: "RabbitMQ__Connections__Default__HostName" |
||||
|
value: "{{ .Values.config.rabbitmqHost }}" |
||||
|
- name: "ElasticSearch__Url" |
||||
|
value: "{{ .Values.config.elasticsearchHost }}" |
||||
|
- name: "AuthServer__Authority" |
||||
|
value: "{{ .Values.config.authServer.authority }}" |
||||
|
- name: "AuthServer__RequireHttpsMetadata" |
||||
|
value: "{{ .Values.config.authServer.requireHttpsMetadata }}" |
||||
|
- name: "AuthServer__SwaggerClientId" |
||||
|
value: "{{ .Values.config.authServer.swaggerClientId }}" |
||||
|
- name: "AuthServer__SwaggerClientSecret" |
||||
|
value: "{{ .Values.config.authServer.swaggerClientSecret }}" |
||||
|
- name: "StringEncryption__DefaultPassPhrase" |
||||
|
value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" |
||||
|
{{- if .Values.env }} |
||||
|
{{ toYaml .Values.env | indent 8 }} |
||||
|
{{- end }} |
||||
|
|
||||
@ -0,0 +1,27 @@ |
|||||
|
apiVersion: networking.k8s.io/v1 |
||||
|
kind: Ingress |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress |
||||
|
annotations: |
||||
|
kubernetes.io/ingress.class: "nginx" |
||||
|
nginx.ingress.kubernetes.io/rewrite-target: / |
||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |
||||
|
nginx.ingress.kubernetes.io/proxy-buffer-size: 32k |
||||
|
nginx.ingress.kubernetes.io/proxy-buffers-number: "8" |
||||
|
cert-manager.io/cluster-issuer: letsencrypt |
||||
|
spec: |
||||
|
tls: |
||||
|
- hosts: |
||||
|
- {{ .Values.ingress.host }} |
||||
|
secretName: {{ .Values.ingress.tlsSecret }} |
||||
|
rules: |
||||
|
- host: "{{ .Values.ingress.host }}" |
||||
|
http: |
||||
|
paths: |
||||
|
- path: / |
||||
|
pathType: Prefix |
||||
|
backend: |
||||
|
service: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
port: |
||||
|
number: 80 |
||||
@ -0,0 +1,14 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: Service |
||||
|
metadata: |
||||
|
labels: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
ports: |
||||
|
- name: "80" |
||||
|
port: 80 |
||||
|
- name: "443" |
||||
|
port: 443 |
||||
|
selector: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
@ -0,0 +1,28 @@ |
|||||
|
config: |
||||
|
selfUrl: # https://eshop-st-ordering |
||||
|
corsOrigins: # https://eshop-st-gateway-web,https://eshop-st-gateway-public-web |
||||
|
connectionStrings: |
||||
|
orderingService: # |
||||
|
administrationService: # |
||||
|
authServer: |
||||
|
authority: http://eshop-st-authserver |
||||
|
requireHttpsMetadata: "false" |
||||
|
swaggerClientId: WebGateway_Swagger |
||||
|
swaggerClientSecret: "1q2w3e*" |
||||
|
dotnetEnv: Staging |
||||
|
redisHost: es-st-redis |
||||
|
rabbitmqHost: es-st-rabbitmq |
||||
|
elasticsearchHost: es-st-elasticsearch |
||||
|
stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 |
||||
|
|
||||
|
ingress: |
||||
|
host: eshop-st-ordering |
||||
|
tlsSecret: eshop-demo-tls |
||||
|
|
||||
|
image: |
||||
|
repository: eshoponabp/service-ordering |
||||
|
tag: latest |
||||
|
pullPolicy: IfNotPresent |
||||
|
|
||||
|
env: {} |
||||
|
|
||||
@ -0,0 +1,6 @@ |
|||||
|
apiVersion: v2 |
||||
|
name: payment |
||||
|
appVersion: "1.0" |
||||
|
description: eShopOnAbp Payment Microservice |
||||
|
version: 1.0.0 |
||||
|
type: application |
||||
@ -0,0 +1,53 @@ |
|||||
|
apiVersion: apps/v1 |
||||
|
kind: Deployment |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
selector: |
||||
|
matchLabels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
template: |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
containers: |
||||
|
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }} |
||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
ports: |
||||
|
- name: http |
||||
|
containerPort: 80 |
||||
|
- name: https |
||||
|
containerPort: 443 |
||||
|
env: |
||||
|
- name: App__SelfUrl |
||||
|
value: "{{ .Values.config.selfUrl }}" |
||||
|
- name: App__CorsOrigins |
||||
|
value: "{{ .Values.config.corsOrigins }}" |
||||
|
- name: "ConnectionStrings__PaymentService" |
||||
|
value: {{ .Values.config.connectionStrings.paymentService }} |
||||
|
- name: "ConnectionStrings__AdministrationService" |
||||
|
value: {{ .Values.config.connectionStrings.administrationService }} |
||||
|
- name: "DOTNET_ENVIRONMENT" |
||||
|
value: "{{ .Values.config.dotnetEnv }}" |
||||
|
- name: "Redis__Configuration" |
||||
|
value: "{{ .Values.config.redisHost }}" |
||||
|
- name: "RabbitMQ__Connections__Default__HostName" |
||||
|
value: "{{ .Values.config.rabbitmqHost }}" |
||||
|
- name: "ElasticSearch__Url" |
||||
|
value: "{{ .Values.config.elasticsearchHost }}" |
||||
|
- name: "AuthServer__Authority" |
||||
|
value: "{{ .Values.config.authServer.authority }}" |
||||
|
- name: "AuthServer__RequireHttpsMetadata" |
||||
|
value: "{{ .Values.config.authServer.requireHttpsMetadata }}" |
||||
|
- name: "AuthServer__SwaggerClientId" |
||||
|
value: "{{ .Values.config.authServer.swaggerClientId }}" |
||||
|
- name: "AuthServer__SwaggerClientSecret" |
||||
|
value: "{{ .Values.config.authServer.swaggerClientSecret }}" |
||||
|
- name: "StringEncryption__DefaultPassPhrase" |
||||
|
value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" |
||||
|
{{- if .Values.env }} |
||||
|
{{ toYaml .Values.env | indent 8 }} |
||||
|
{{- end }} |
||||
|
|
||||
@ -0,0 +1,27 @@ |
|||||
|
apiVersion: networking.k8s.io/v1 |
||||
|
kind: Ingress |
||||
|
metadata: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress |
||||
|
annotations: |
||||
|
kubernetes.io/ingress.class: "nginx" |
||||
|
nginx.ingress.kubernetes.io/rewrite-target: / |
||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |
||||
|
nginx.ingress.kubernetes.io/proxy-buffer-size: 32k |
||||
|
nginx.ingress.kubernetes.io/proxy-buffers-number: "8" |
||||
|
cert-manager.io/cluster-issuer: letsencrypt |
||||
|
spec: |
||||
|
tls: |
||||
|
- hosts: |
||||
|
- {{ .Values.ingress.host }} |
||||
|
secretName: {{ .Values.ingress.tlsSecret }} |
||||
|
rules: |
||||
|
- host: "{{ .Values.ingress.host }}" |
||||
|
http: |
||||
|
paths: |
||||
|
- path: / |
||||
|
pathType: Prefix |
||||
|
backend: |
||||
|
service: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
port: |
||||
|
number: 80 |
||||
@ -0,0 +1,14 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: Service |
||||
|
metadata: |
||||
|
labels: |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
name: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
|
spec: |
||||
|
ports: |
||||
|
- name: "80" |
||||
|
port: 80 |
||||
|
- name: "443" |
||||
|
port: 443 |
||||
|
selector: |
||||
|
app: {{ .Release.Name }}-{{ .Chart.Name }} |
||||
@ -0,0 +1,28 @@ |
|||||
|
config: |
||||
|
selfUrl: # https://eshop-st-payment |
||||
|
corsOrigins: # https://eshop-st-gateway-web,https://eshop-st-gateway-public-web |
||||
|
connectionStrings: |
||||
|
paymentService: # |
||||
|
administrationService: # |
||||
|
authServer: |
||||
|
authority: http://eshop-st-authserver |
||||
|
requireHttpsMetadata: "false" |
||||
|
swaggerClientId: WebGateway_Swagger |
||||
|
swaggerClientSecret: "1q2w3e*" |
||||
|
dotnetEnv: Staging |
||||
|
redisHost: es-st-redis |
||||
|
rabbitmqHost: es-st-rabbitmq |
||||
|
elasticsearchHost: es-st-elasticsearch |
||||
|
stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 |
||||
|
|
||||
|
ingress: |
||||
|
host: eshop-st-payment |
||||
|
tlsSecret: eshop-demo-tls |
||||
|
|
||||
|
image: |
||||
|
repository: eshoponabp/service-payment |
||||
|
tag: latest |
||||
|
pullPolicy: IfNotPresent |
||||
|
|
||||
|
env: {} |
||||
|
|
||||
@ -0,0 +1,51 @@ |
|||||
|
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 |
||||
|
|
||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles |
||||
|
# to take advantage of Docker's build cache, to speed up local container builds |
||||
|
COPY "EShopOnAbp.sln" "EShopOnAbp.sln" |
||||
|
|
||||
|
# Applications |
||||
|
COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" |
||||
|
COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" |
||||
|
|
||||
|
# Shared |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" |
||||
|
|
||||
|
# Microservices |
||||
|
COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" |
||||
|
COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" |
||||
|
COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" |
||||
|
COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" |
||||
|
COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" |
||||
|
COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" |
||||
|
|
||||
|
# Gateways |
||||
|
COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" |
||||
|
COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" |
||||
|
|
||||
|
COPY "NuGet.Config" "NuGet.Config" |
||||
|
|
||||
|
RUN dotnet restore "EShopOnAbp.sln" |
||||
|
COPY . . |
||||
|
|
||||
|
WORKDIR "/src/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host" |
||||
|
RUN dotnet publish -c Release -o /app |
||||
|
# Should be used after .net6 is out of preview for better performance |
||||
|
# RUN dotnet publish --no-restore -c Release -o /app |
||||
|
|
||||
|
FROM build AS publish |
||||
|
|
||||
|
FROM base AS final |
||||
|
WORKDIR /app |
||||
|
COPY --from=publish /app . |
||||
|
ENTRYPOINT ["dotnet", "EShopOnAbp.BasketService.HttpApi.Host.dll"] |
||||
@ -0,0 +1,51 @@ |
|||||
|
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 |
||||
|
|
||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles |
||||
|
# to take advantage of Docker's build cache, to speed up local container builds |
||||
|
COPY "EShopOnAbp.sln" "EShopOnAbp.sln" |
||||
|
|
||||
|
# Applications |
||||
|
COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" |
||||
|
COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" |
||||
|
|
||||
|
# Shared |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" |
||||
|
|
||||
|
# Microservices |
||||
|
COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" |
||||
|
COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" |
||||
|
COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" |
||||
|
COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" |
||||
|
COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" |
||||
|
COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" |
||||
|
|
||||
|
# Gateways |
||||
|
COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" |
||||
|
COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" |
||||
|
|
||||
|
COPY "NuGet.Config" "NuGet.Config" |
||||
|
|
||||
|
RUN dotnet restore "EShopOnAbp.sln" |
||||
|
COPY . . |
||||
|
|
||||
|
WORKDIR "/src/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host" |
||||
|
RUN dotnet publish -c Release -o /app |
||||
|
# Should be used after .net6 is out of preview for better performance |
||||
|
# RUN dotnet publish --no-restore -c Release -o /app |
||||
|
|
||||
|
FROM build AS publish |
||||
|
|
||||
|
FROM base AS final |
||||
|
WORKDIR /app |
||||
|
COPY --from=publish /app . |
||||
|
ENTRYPOINT ["dotnet", "EShopOnAbp.CatalogService.HttpApi.Host.dll"] |
||||
@ -1,4 +1,4 @@ |
|||||
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
FROM mcr.microsoft.com/dotnet/aspnet:6.0 |
||||
COPY bin/Release/net6.0/publish/ app/ |
COPY bin/Release/net6.0/publish/ app/ |
||||
WORKDIR /app |
WORKDIR /app |
||||
ENTRYPOINT ["dotnet", "EShopOnAbp.CatalogService.HttpApi.Host.dll"] |
ENTRYPOINT ["dotnet", "EShopOnAbp.CatalogService.HttpApi.Host.dll"] |
||||
@ -0,0 +1,51 @@ |
|||||
|
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 |
||||
|
|
||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles |
||||
|
# to take advantage of Docker's build cache, to speed up local container builds |
||||
|
COPY "EShopOnAbp.sln" "EShopOnAbp.sln" |
||||
|
|
||||
|
# Applications |
||||
|
COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" |
||||
|
COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" |
||||
|
|
||||
|
# Shared |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" |
||||
|
|
||||
|
# Microservices |
||||
|
COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" |
||||
|
COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" |
||||
|
COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" |
||||
|
COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" |
||||
|
COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" |
||||
|
COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" |
||||
|
|
||||
|
# Gateways |
||||
|
COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" |
||||
|
COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" |
||||
|
|
||||
|
COPY "NuGet.Config" "NuGet.Config" |
||||
|
|
||||
|
RUN dotnet restore "EShopOnAbp.sln" |
||||
|
COPY . . |
||||
|
|
||||
|
WORKDIR "/src/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host" |
||||
|
RUN dotnet publish -c Release -o /app |
||||
|
# Should be used after .net6 is out of preview for better performance |
||||
|
# RUN dotnet publish --no-restore -c Release -o /app |
||||
|
|
||||
|
FROM build AS publish |
||||
|
|
||||
|
FROM base AS final |
||||
|
WORKDIR /app |
||||
|
COPY --from=publish /app . |
||||
|
ENTRYPOINT ["dotnet", "EShopOnAbp.OrderingService.HttpApi.Host.dll"] |
||||
@ -0,0 +1,51 @@ |
|||||
|
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 |
||||
|
|
||||
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles |
||||
|
# to take advantage of Docker's build cache, to speed up local container builds |
||||
|
COPY "EShopOnAbp.sln" "EShopOnAbp.sln" |
||||
|
|
||||
|
# Applications |
||||
|
COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" |
||||
|
COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" |
||||
|
|
||||
|
# Shared |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" |
||||
|
COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" |
||||
|
|
||||
|
# Microservices |
||||
|
COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" |
||||
|
COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" |
||||
|
COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" |
||||
|
COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" |
||||
|
COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" |
||||
|
COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" |
||||
|
|
||||
|
# Gateways |
||||
|
COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" |
||||
|
COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" |
||||
|
|
||||
|
COPY "NuGet.Config" "NuGet.Config" |
||||
|
|
||||
|
RUN dotnet restore "EShopOnAbp.sln" |
||||
|
COPY . . |
||||
|
|
||||
|
WORKDIR "/src/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host" |
||||
|
RUN dotnet publish -c Release -o /app |
||||
|
# Should be used after .net6 is out of preview for better performance |
||||
|
# RUN dotnet publish --no-restore -c Release -o /app |
||||
|
|
||||
|
FROM build AS publish |
||||
|
|
||||
|
FROM base AS final |
||||
|
WORKDIR /app |
||||
|
COPY --from=publish /app . |
||||
|
ENTRYPOINT ["dotnet", "EShopOnAbp.PaymentService.HttpApi.Host.dll"] |
||||
Loading…
Reference in new issue