Merge pull request #1 from dotnet-architecture/dev

update
This commit is contained in:
chinaq 2019-06-10 08:53:20 +08:00 committed by GitHub
commit 3e3d11fe1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
68 changed files with 363 additions and 618 deletions

View File

@ -16,37 +16,14 @@ trigger:
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/* - src/ApiGateways/Mobile.Bff.Shopping/aggregator/*
- src/ApiGateways/Web.Bff.Shopping/aggregator/* - src/ApiGateways/Web.Bff.Shopping/aggregator/*
jobs: jobs:
- job: BuildLinux - template: ../buildimages.yaml
pool: parameters:
vmImage: 'ubuntu-16.04' services: mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw
steps: registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0 helmfrom: $(Build.SourcesDirectory)/k8s/helm
displayName: Compose build apigws helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
inputs: - template: ../multiarch.yaml
dockerComposeCommand: 'build mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw' parameters:
containerregistrytype: Container Registry image: ocelotapigw
dockerRegistryEndpoint: $(registryEndpoint) branch: $(Build.SourceBranchName)
dockerComposeFile: docker-compose.yml registryEndpoint: $(registryEndpoint)
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: DockerCompose@0
displayName: Compose push apigws
inputs:
dockerComposeCommand: 'push mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -12,34 +10,15 @@ trigger:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Services/Basket/* - src/Services/Basket/*
- k8s/helm/basket-api/* - k8s/helm/basket-api/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build basket parameters:
inputs: services: basket.api
dockerComposeCommand: 'build basket.api' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: basket.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push basket
inputs:
dockerComposeCommand: 'push basket.api'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -0,0 +1,92 @@
parameters:
services: ''
registryEndpoint: ''
helmfrom: ''
helmto: ''
jobs:
- job: BuildContainersForPR_Linux
condition: eq('${{ variables['Build.Reason'] }}', 'PullRequest')
pool:
vmImage: 'ubuntu-16.04'
steps:
- bash: docker-compose build ${{ parameters.services }}
displayName: Create multiarch manifest
env:
TAG: ${{ variables['Build.SourceBranchName'] }}
- job: BuildContainersForPR_Windows
condition: eq('${{ variables['Build.Reason'] }}', 'PullRequest')
pool:
vmImage: 'windows-2019'
steps:
- bash: docker-compose build ${{ parameters.services }}
displayName: Create multiarch manifest
env:
TAG: ${{ variables['Build.SourceBranchName'] }}
PLATFORM: win
NODE_IMAGE: stefanscherer/node-windows:8.11
- job: BuildLinux
condition: ne('${{ variables['Build.Reason'] }}', 'PullRequest')
pool:
vmImage: 'ubuntu-16.04'
steps:
- task: DockerCompose@0
displayName: Compose build ${{ parameters.services }}
inputs:
dockerComposeCommand: 'build ${{ parameters.services }}'
containerregistrytype: Container Registry
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=${{ variables['Build.SourceBranchName'] }}
- task: DockerCompose@0
displayName: Compose push ${{ parameters.images }}
inputs:
dockerComposeCommand: 'push ${{ parameters.services }}'
containerregistrytype: Container Registry
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=${{ variables['Build.SourceBranchName'] }}
- task: CopyFiles@2
inputs:
sourceFolder: ${{ parameters.helmfrom }}
targetFolder: ${{ parameters.helmto }}
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: ${{ parameters.helmto }}
artifactName: helm
- job: BuildWindows
condition: ne('${{ variables['Build.Reason'] }}', 'PullRequest')
pool:
vmImage: 'windows-2019'
steps:
- task: DockerCompose@0
displayName: Compose build ${{ parameters.services }}
inputs:
dockerComposeCommand: 'build ${{ parameters.services }}'
containerregistrytype: Container Registry
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=${{ variables['Build.SourceBranchName'] }}
PLATFORM=win
NODE_IMAGE=stefanscherer/node-windows:8.11
- task: DockerCompose@0
displayName: Compose push ${{ parameters.services }}
inputs:
dockerComposeCommand: 'push ${{ parameters.services }}'
containerregistrytype: Container Registry
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=${{ variables['Build.SourceBranchName'] }}
PLATFORM=win

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -12,34 +10,15 @@ trigger:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Services/Catalog/* - src/Services/Catalog/*
- k8s/helm/catalog-api/* - k8s/helm/catalog-api/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build catalog parameters:
inputs: services: catalog.api
dockerComposeCommand: 'build catalog.api' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: catalog.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push catalog
inputs:
dockerComposeCommand: 'push catalog.api'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -12,34 +10,15 @@ trigger:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Services/Identity/* - src/Services/Identity/*
- k8s/helm/identity-api/* - k8s/helm/identity-api/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build identity parameters:
inputs: services: identity.api
dockerComposeCommand: 'build identity.api' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: identity.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push identity
inputs:
dockerComposeCommand: 'push identity.api'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -11,35 +9,16 @@ trigger:
include: include:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Services/Location/* - src/Services/Location/*
- k8s/helm/locations-api/* - k8s/helm/locations-api/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build locations parameters:
inputs: services: locations.api
dockerComposeCommand: 'build locations.api' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: locations.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push locations
inputs:
dockerComposeCommand: 'push locations.api'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -11,35 +9,16 @@ trigger:
include: include:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Services/Marketing/* - src/Services/Marketing/*
- k8s/helm/marketing-api/* - k8s/helm/marketing-api/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build marketing parameters:
inputs: services: marketing.api
dockerComposeCommand: 'build marketing.api' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: marketing.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push marketing
inputs:
dockerComposeCommand: 'push marketing.api'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -10,35 +8,17 @@ trigger:
paths: paths:
include: include:
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/* - src/ApiGateways/Mobile.Bff.Shopping/aggregator/*
- k8s/helm/mobileshoppingagg/* - k8s/helm/mobileshoppingagg/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build mobileshoppingagg parameters:
inputs: services: mobileshoppingagg
dockerComposeCommand: 'build mobileshoppingagg' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: mobileshoppingagg
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push mobileshoppingagg
inputs:
dockerComposeCommand: 'push mobileshoppingagg'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -0,0 +1,30 @@
parameters:
image: ''
branch: ''
registry: 'eshop'
registryEndpoint: ''
jobs:
- job: manifest
condition: and(succeeded(),ne('${{ variables['Build.Reason'] }}', 'PullRequest'))
dependsOn:
- BuildWindows
- BuildLinux
pool:
vmImage: 'Ubuntu 16.04'
steps:
- task: Docker@1
displayName: Docker Login
inputs:
command: login
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }}
- bash: |
mkdir -p ~/.docker
sed '$ s/.$//' $DOCKER_CONFIG/config.json > ~/.docker/config.json
echo ',"experimental": "enabled" }' >> ~/.docker/config.json
docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:linux-${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:win-${{ parameters.branch }}
docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:latest ${{ parameters.registry }}/${{ parameters.image }}:linux-latest ${{ parameters.registry }}/${{ parameters.image }}:win-latest
docker --config ~/.docker manifest push ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }}
docker --config ~/.docker manifest push ${{ parameters.registry }}/${{ parameters.image }}:latest
displayName: Create multiarch manifest

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -14,34 +12,15 @@ trigger:
- k8s/helm/ordering-api/* - k8s/helm/ordering-api/*
- k8s/helm/ordering-backgroundtasks/* - k8s/helm/ordering-backgroundtasks/*
- k8s/helm/ordering-signalrhub/* - k8s/helm/ordering-signalrhub/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build ordering parameters:
inputs: services: ordering.api
dockerComposeCommand: 'build ordering.api ordering.backgroundtasks ordering.signalrhub' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: ordering.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push ordering
inputs:
dockerComposeCommand: 'push ordering.api ordering.backgroundtasks ordering.signalrhub'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -12,34 +10,15 @@ trigger:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Services/Payment/* - src/Services/Payment/*
- k8s/helm/payment-api/* - k8s/helm/payment-api/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build payment parameters:
inputs: services: payment.api
dockerComposeCommand: 'build payment.api' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: payment.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push payment
inputs:
dockerComposeCommand: 'push payment.api'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -10,35 +8,16 @@ trigger:
paths: paths:
include: include:
- src/ApiGateways/Web.Bff.Shopping/aggregator/* - src/ApiGateways/Web.Bff.Shopping/aggregator/*
- k8s/helm/webshoppingagg/* - k8s/helm/webshoppingagg/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build webshoppingagg parameters:
inputs: services: webshoppingagg
dockerComposeCommand: 'build webshoppingagg' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: webshoppingagg
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push webshoppingagg
inputs:
dockerComposeCommand: 'push webshoppingagg'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -11,35 +9,16 @@ trigger:
include: include:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Services/Webhooks/* - src/Services/Webhooks/*
- k8s/helm/webhooks-api/* - k8s/helm/webhooks-api/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build webhooks parameters:
inputs: services: webhooks.api
dockerComposeCommand: 'build webhooks.api' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: webhooks.api
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push webhooks
inputs:
dockerComposeCommand: 'push webhooks.api'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -11,35 +9,16 @@ trigger:
include: include:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Web/WebhookClient/* - src/Web/WebhookClient/*
- k8s/helm/webhooks-web/* - k8s/helm/webhooks-web/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build webhooks.client parameters:
inputs: services: webhooks.client
dockerComposeCommand: 'build webhooks.client' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry helmfrom: $(Build.SourcesDirectory)/k8s/helm
dockerRegistryEndpoint: $(registryEndpoint) helmto: $(Build.ArtifactStagingDirectory)/k8s/helm
dockerComposeFile: docker-compose.yml - template: ../multiarch.yaml
qualifyImageNames: true parameters:
projectName: "" image: webhooks.client
dockerComposeFileArgs: | branch: $(Build.SourceBranchName)
TAG=$(Build.SourceBranchName) registryEndpoint: $(registryEndpoint)
- task: DockerCompose@0
displayName: Compose push webhooks.client
inputs:
dockerComposeCommand: 'push webhooks.client'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -11,35 +9,14 @@ trigger:
include: include:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Web/WebMVC/* - src/Web/WebMVC/*
- k8s/helm/webmvc/* - k8s/helm/webmvc/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build webmvc parameters:
inputs: services: webmvc
dockerComposeCommand: 'build webmvc' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry - template: ../multiarch.yaml
dockerRegistryEndpoint: $(registryEndpoint) parameters:
dockerComposeFile: docker-compose.yml image: webmvc
qualifyImageNames: true branch: $(Build.SourceBranchName)
projectName: "" registryEndpoint: $(registryEndpoint)
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: DockerCompose@0
displayName: Compose push webmvc
inputs:
dockerComposeCommand: 'push webmvc'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -12,34 +10,13 @@ trigger:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Web/WebSPA/* - src/Web/WebSPA/*
- k8s/helm/webspa/* - k8s/helm/webspa/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build webspa parameters:
inputs: services: webspa
dockerComposeCommand: 'build webspa' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry - template: ../multiarch.yaml
dockerRegistryEndpoint: $(registryEndpoint) parameters:
dockerComposeFile: docker-compose.yml image: webspa
qualifyImageNames: true branch: $(Build.SourceBranchName)
projectName: "" registryEndpoint: $(registryEndpoint)
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: DockerCompose@0
displayName: Compose push webspa
inputs:
dockerComposeCommand: 'push webspa'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -1,5 +1,3 @@
pool:
vmImage: 'ubuntu-16.04'
variables: variables:
registryEndpoint: eshop-registry registryEndpoint: eshop-registry
trigger: trigger:
@ -11,35 +9,14 @@ trigger:
include: include:
- src/BuildingBlocks/* - src/BuildingBlocks/*
- src/Web/WebStatus/* - src/Web/WebStatus/*
- k8s/helm/webstatus/* - k8s/helm/webstatus/*
steps: jobs:
- task: DockerCompose@0 - template: ../buildimages.yaml
displayName: Compose build webstatus parameters:
inputs: services: webstatus
dockerComposeCommand: 'build webstatus' registryEndpoint: $(registryEndpoint)
containerregistrytype: Container Registry - template: ../multiarch.yaml
dockerRegistryEndpoint: $(registryEndpoint) parameters:
dockerComposeFile: docker-compose.yml image: webstatus
qualifyImageNames: true branch: $(Build.SourceBranchName)
projectName: "" registryEndpoint: $(registryEndpoint)
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: DockerCompose@0
displayName: Compose push webstatus
inputs:
dockerComposeCommand: 'push webstatus'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm

View File

@ -111,6 +111,7 @@ services:
- OrchestratorType=${ORCHESTRATOR_TYPE} - OrchestratorType=${ORCHESTRATOR_TYPE}
- UseLoadTest=${USE_LOADTEST:-False} - UseLoadTest=${USE_LOADTEST:-False}
- Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose - Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose
- Serilog__MinimumLevel__Override__Ordering.API=Verbose
ports: ports:
- "5102:80" # Important: In a production environment your should remove the external port (5102) kept here for microservice debugging purposes. - "5102:80" # Important: In a production environment your should remove the external port (5102) kept here for microservice debugging purposes.
# The API Gateway redirects and access through the internal port (80). # The API Gateway redirects and access through the internal port (80).

View File

@ -214,6 +214,8 @@ services:
build: build:
context: . context: .
dockerfile: src/Web/WebSPA/Dockerfile dockerfile: src/Web/WebSPA/Dockerfile
args:
- NODE_IMAGE=${NODE_IMAGE:-node:8.11}
# depends_on: # depends_on:
# - webshoppingagg # - webshoppingagg
# - webshoppingapigw # - webshoppingapigw

Binary file not shown.

BIN
img/eShopScreen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -29,7 +29,7 @@ app: # app global settings
catalog: catalog # service name for catalog api catalog: catalog # service name for catalog api
ordering: ordering # service name for ordering api ordering: ordering # service name for ordering api
orderingbackgroundtasks: orderingbackgroundtasks # service name for orderingbackgroundtasks orderingbackgroundtasks: orderingbackgroundtasks # service name for orderingbackgroundtasks
orderingsignalrhub: ordering-signalrhub # service name for orderingsignalrhub orderingsignalrhub: ordering-signalrhub # service name for orderingsignalrhub
identity: identity # service name for identity api identity: identity # service name for identity api
mvc: webmvc # service name for web mvc mvc: webmvc # service name for web mvc
spa: webspa # service name for web spa spa: webspa # service name for web spa

View File

@ -15,5 +15,5 @@ data:
urls__IdentityUrl: http://{{ $identity }} urls__IdentityUrl: http://{{ $identity }}
basket__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" basket__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"

View File

@ -16,5 +16,5 @@ data:
catalog__PicBaseUrl: http://{{ $webshoppingapigw }}/api/v1/c/catalog/items/[0]/pic/ catalog__PicBaseUrl: http://{{ $webshoppingapigw }}/api/v1/c/catalog/items/[0]/pic/
catalog__AzureStorageEnabled: "{{ .Values.inf.misc.useAzureStorage }}" catalog__AzureStorageEnabled: "{{ .Values.inf.misc.useAzureStorage }}"
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"

View File

@ -67,7 +67,7 @@ $charts = ("eshop-common", "apigwmm", "apigwms", "apigwwm", "apigwws", "basket-a
if ($deployInfrastructure) { if ($deployInfrastructure) {
foreach ($infra in $infras) { foreach ($infra in $infras) {
Write-Host "Installing infrastructure: $infra" -ForegroundColor Green Write-Host "Installing infrastructure: $infra" -ForegroundColor Green
helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set ingress.hosts={$dns} --name="$appName-$infra" $infra helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --name="$appName-$infra" $infra
} }
} }
else { else {
@ -78,11 +78,11 @@ if ($deployCharts) {
foreach ($chart in $charts) { foreach ($chart in $charts) {
Write-Host "Installing: $chart" -ForegroundColor Green Write-Host "Installing: $chart" -ForegroundColor Green
if ($useCustomRegistry) { if ($useCustomRegistry) {
helm install --set inf.registry.server=$registry --set inf.registry.login=$dockerUser --set inf.registry.pwd=$dockerPassword --set inf.registry.secretName=eshop-docker-scret --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set ingress.hosts={$dns} --set image.tag=$imageTag --set image.pullPolicy=Always --name="$appName-$chart" $chart helm install --set inf.registry.server=$registry --set inf.registry.login=$dockerUser --set inf.registry.pwd=$dockerPassword --set inf.registry.secretName=eshop-docker-scret --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.tag=$imageTag --set image.pullPolicy=Always --name="$appName-$chart" $chart
} }
else { else {
if ($chart -ne "eshop-common") { # eshop-common is ignored when no secret must be deployed if ($chart -ne "eshop-common") { # eshop-common is ignored when no secret must be deployed
helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set ingress.hosts={$dns} --set image.tag=$imageTag --set image.pullPolicy=Always --name="$appName-$chart" $chart helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.tag=$imageTag --set image.pullPolicy=Always --name="$appName-$chart" $chart
} }
} }
} }

View File

@ -24,7 +24,7 @@ metadata:
data: data:
identity__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.identity.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }}; identity__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.identity.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }};
identity__keystore: {{ .Values.inf.redis.keystore.constr }} identity__keystore: {{ .Values.inf.redis.keystore.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
mvc_e: http://{{ $mvc_url }} mvc_e: http://{{ $mvc_url }}
spa_e: http://{{ $spa_url }} spa_e: http://{{ $spa_url }}
locations_e: http://{{ $locations_url }} locations_e: http://{{ $locations_url }}

View File

@ -1,4 +1,4 @@
# This heml values file defines all infrastructure used by eShopOnContainers. # This helm values file defines all infrastructure used by eShopOnContainers.
# It is used on all charts, so ** MUST BE INCLUDED ** on every deployment # It is used on all charts, so ** MUST BE INCLUDED ** on every deployment
inf: inf:
@ -15,11 +15,11 @@ inf:
identity: identity:
db: IdentityDb # Ordering API SQL db name db: IdentityDb # Ordering API SQL db name
marketing: marketing:
db: MarketingDb # Marketing API SQL db name db: MarketingDb # Marketing API SQL db name
webhooks: webhooks:
db: WebhooksDb # Webhooks DB db: WebhooksDb # Webhooks DB
mongo: mongo:
# host: my-nosql-data # Uncomment to use specify custom mongo host. By default nosql-data is used # host: my-nosql-data # Uncomment to use specify custom mongo host. By default nosql-data is used
locations: locations:
database: LocationsDb database: LocationsDb
marketing: marketing:

View File

@ -13,7 +13,7 @@ metadata:
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
internalurls__IdentityUrl: http://{{ .Values.app.svc.identity }} internalurls__IdentityUrl: http://{{ .Values.app.svc.identity }}

View File

@ -15,7 +15,7 @@ metadata:
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
internalurls__IdentityUrl: http://{{ .Values.app.svc.identity }} internalurls__IdentityUrl: http://{{ .Values.app.svc.identity }}

View File

@ -10,7 +10,7 @@ metadata:
release: {{ .Release.Name }} release: {{ .Release.Name }}
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
mobileshoppingagg__keystore: {{ .Values.inf.redis.keystore.constr }} mobileshoppingagg__keystore: {{ .Values.inf.redis.keystore.constr }}
internalurls__basket: http://{{ .Values.app.svc.basket }} internalurls__basket: http://{{ .Values.app.svc.basket }}

View File

@ -16,5 +16,5 @@ data:
ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
urls__IdentityUrl: http://{{ $identity }} urls__IdentityUrl: http://{{ $identity }}
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"

View File

@ -15,7 +15,7 @@ data:
ordering__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.ordering.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }}; ordering__ConnectionString: Server={{ $sqlsrv }};Initial Catalog={{ .Values.inf.sql.ordering.db }};User Id={{ .Values.inf.sql.common.user }};Password={{ .Values.inf.sql.common.pwd }};
ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" ordering__EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
graceperiodmanager__CheckUpdateTime: "{{ .Values.cfg.checkUpdateTime }}" graceperiodmanager__CheckUpdateTime: "{{ .Values.cfg.checkUpdateTime }}"
graceperiodmanager__GracePeriodTime: "{{ .Values.cfg.gracePeriodTime }}" graceperiodmanager__GracePeriodTime: "{{ .Values.cfg.gracePeriodTime }}"

View File

@ -12,7 +12,7 @@ metadata:
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
signalr__StoreConnectionString: {{ .Values.inf.redis.keystore.constr }} signalr__StoreConnectionString: {{ .Values.inf.redis.keystore.constr }}
urls__IdentityUrl: http://{{ $identity }} urls__IdentityUrl: http://{{ $identity }}

View File

@ -11,5 +11,5 @@ metadata:
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"

View File

@ -16,5 +16,5 @@ data:
urls__IdentityUrl: http://{{ $identity }} urls__IdentityUrl: http://{{ $identity }}
urls__IdentityUrlExternal: http://{{ $identity }} urls__IdentityUrlExternal: http://{{ $identity }}
all__EventBusConnection: {{ .Values.inf.eventbus.constr }} all__EventBusConnection: {{ .Values.inf.eventbus.constr }}
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"

View File

@ -14,7 +14,7 @@ metadata:
release: {{ .Release.Name }} release: {{ .Release.Name }}
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
webmvc__keystore: {{ .Values.inf.redis.keystore.constr }} webmvc__keystore: {{ .Values.inf.redis.keystore.constr }}

View File

@ -10,7 +10,7 @@ metadata:
release: {{ .Release.Name }} release: {{ .Release.Name }}
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
webshoppingagg__keystore: {{ .Values.inf.redis.keystore.constr }} webshoppingagg__keystore: {{ .Values.inf.redis.keystore.constr }}
internalurls__basket: http://{{ .Values.app.svc.basket }} internalurls__basket: http://{{ .Values.app.svc.basket }}

View File

@ -16,7 +16,7 @@ metadata:
release: {{ .Release.Name }} release: {{ .Release.Name }}
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
webspa__keystore: {{ .Values.inf.redis.keystore.constr }} webspa__keystore: {{ .Values.inf.redis.keystore.constr }}
internalurls__apigwws: http://{{ .Values.app.svc.webshoppingapigw }} internalurls__apigwws: http://{{ .Values.app.svc.webshoppingapigw }}

View File

@ -15,7 +15,7 @@ metadata:
release: {{ .Release.Name }} release: {{ .Release.Name }}
heritage: {{ .Release.Service }} heritage: {{ .Release.Service }}
data: data:
all__InstrumentationKey: {{ .Values.inf.appinsights.key }} all__InstrumentationKey: "{{ .Values.inf.appinsights.key }}"
all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}" all__UseAzureServiceBus: "{{ .Values.inf.eventbus.useAzure }}"
all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}" all_EnableLoadTest: "{{ .Values.inf.misc.useLoadTest }}"
webstatus__keystore: {{ .Values.inf.redis.keystore.constr }} webstatus__keystore: {{ .Values.inf.redis.keystore.constr }}

View File

@ -7,7 +7,7 @@ This file contains links to the documentation of the project.
## Documentation included in files ## Documentation included in files
* [Branch Guide](../branch-guide.md): List of branches used and their purpose. * [Branch Guide](../branch-guide.md): List of branches used and their purpose.
* [vsts-docs folder](../vsts-docs/readme.md): Information about how to setup a CI/CD procedure using VSTS * [vsts-docs folder](../vsts-docs/readme.md): Information about how to setup a CI/CD procedure using Azure DevOps
* [Kubernetes](../k8s/readme.md): Information about how to deploy eShopOnContainers in a kubernetes cluster, and how to setup a CI/CD for k8s using VSTS * [Kubernetes](../k8s/readme.md): Information about how to deploy eShopOnContainers in a kubernetes cluster, and how to setup a CI/CD for k8s using VSTS
* [deploy](../deploy/readme.md): Information about how deploy Azure resources using the Azure CLI 2.0. * [deploy](../deploy/readme.md): Information about how deploy Azure resources using the Azure CLI 2.0.
* [.env file](./README.ENV.md): What is the `.env` file and how to use it to configure eShopOnContainers to use external resources (like Azure) * [.env file](./README.ENV.md): What is the `.env` file and how to use it to configure eShopOnContainers to use external resources (like Azure)

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/ApiGateways/ApiGw-Base/ WORKDIR /src/src/ApiGateways/ApiGw-Base/
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -36,15 +36,9 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Controllers
} }
// Retrieve the current basket // Retrieve the current basket
var currentBasket = await _basket.GetByIdAsync(data.BuyerId); var basket = await _basket.GetByIdAsync(data.BuyerId) ?? new BasketData(data.BuyerId);
if (currentBasket == null)
{
currentBasket = new BasketData(data.BuyerId);
}
var catalogItems = await _catalog.GetCatalogItemsAsync(data.Items.Select(x => x.ProductId)); var catalogItems = await _catalog.GetCatalogItemsAsync(data.Items.Select(x => x.ProductId));
var newBasket = new BasketData(data.BuyerId);
foreach (var bitem in data.Items) foreach (var bitem in data.Items)
{ {
@ -54,7 +48,7 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Controllers
return BadRequest($"Basket refers to a non-existing catalog item ({bitem.ProductId})"); return BadRequest($"Basket refers to a non-existing catalog item ({bitem.ProductId})");
} }
newBasket.Items.Add(new BasketDataItem() basket.Items.Add(new BasketDataItem()
{ {
Id = bitem.Id, Id = bitem.Id,
ProductId = catalogItem.Id.ToString(), ProductId = catalogItem.Id.ToString(),
@ -65,9 +59,9 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Controllers
}); });
} }
await _basket.UpdateAsync(newBasket); await _basket.UpdateAsync(basket);
return newBasket; return basket;
} }
[HttpPut] [HttpPut]

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/ApiGateways/Mobile.Bff.Shopping/aggregator WORKDIR /src/src/ApiGateways/Mobile.Bff.Shopping/aggregator
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -36,14 +36,9 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Controllers
} }
// Retrieve the current basket // Retrieve the current basket
var currentBasket = await _basket.GetByIdAsync(data.BuyerId); var basket = await _basket.GetByIdAsync(data.BuyerId) ?? new BasketData(data.BuyerId);
if (currentBasket == null)
{
currentBasket = new BasketData(data.BuyerId);
}
var catalogItems = await _catalog.GetCatalogItemsAsync(data.Items.Select(x => x.ProductId)); var catalogItems = await _catalog.GetCatalogItemsAsync(data.Items.Select(x => x.ProductId));
var newBasket = new BasketData(data.BuyerId);
foreach (var bitem in data.Items) foreach (var bitem in data.Items)
{ {
@ -53,7 +48,7 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Controllers
return BadRequest($"Basket refers to a non-existing catalog item ({bitem.ProductId})"); return BadRequest($"Basket refers to a non-existing catalog item ({bitem.ProductId})");
} }
newBasket.Items.Add(new BasketDataItem() basket.Items.Add(new BasketDataItem()
{ {
Id = bitem.Id, Id = bitem.Id,
ProductId = catalogItem.Id.ToString(), ProductId = catalogItem.Id.ToString(),
@ -64,9 +59,9 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Controllers
}); });
} }
await _basket.UpdateAsync(newBasket); await _basket.UpdateAsync(basket);
return newBasket; return basket;
} }
[HttpPut] [HttpPut]

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/ApiGateways/Web.Bff.Shopping/aggregator WORKDIR /src/src/ApiGateways/Web.Bff.Shopping/aggregator
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Basket/Basket.API WORKDIR /src/src/Services/Basket/Basket.API
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Catalog/Catalog.API WORKDIR /src/src/Services/Catalog/Catalog.API
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Identity/Identity.API WORKDIR /src/src/Services/Identity/Identity.API
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Location/Locations.API WORKDIR /src/src/Services/Location/Locations.API
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Marketing/Marketing.API WORKDIR /src/src/Services/Marketing/Marketing.API
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -1,17 +1,16 @@
using FluentValidation; using FluentValidation;
using Microsoft.Extensions.Logging;
using Ordering.API.Application.Commands; using Ordering.API.Application.Commands;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Ordering.API.Application.Validations namespace Ordering.API.Application.Validations
{ {
public class CancelOrderCommandValidator : AbstractValidator<CancelOrderCommand> public class CancelOrderCommandValidator : AbstractValidator<CancelOrderCommand>
{ {
public CancelOrderCommandValidator() public CancelOrderCommandValidator(ILogger<CancelOrderCommandValidator> logger)
{ {
RuleFor(order => order.OrderNumber).NotEmpty().WithMessage("No orderId found"); RuleFor(order => order.OrderNumber).NotEmpty().WithMessage("No orderId found");
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
} }
} }
} }

View File

@ -1,5 +1,6 @@
using FluentValidation; using FluentValidation;
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -9,19 +10,21 @@ namespace Ordering.API.Application.Validations
{ {
public class CreateOrderCommandValidator : AbstractValidator<CreateOrderCommand> public class CreateOrderCommandValidator : AbstractValidator<CreateOrderCommand>
{ {
public CreateOrderCommandValidator() public CreateOrderCommandValidator(ILogger<CreateOrderCommandValidator> logger)
{ {
RuleFor(command => command.City).NotEmpty(); RuleFor(command => command.City).NotEmpty();
RuleFor(command => command.Street).NotEmpty(); RuleFor(command => command.Street).NotEmpty();
RuleFor(command => command.State).NotEmpty(); RuleFor(command => command.State).NotEmpty();
RuleFor(command => command.Country).NotEmpty(); RuleFor(command => command.Country).NotEmpty();
RuleFor(command => command.ZipCode).NotEmpty(); RuleFor(command => command.ZipCode).NotEmpty();
RuleFor(command => command.CardNumber).NotEmpty().Length(12, 19); RuleFor(command => command.CardNumber).NotEmpty().Length(12, 19);
RuleFor(command => command.CardHolderName).NotEmpty(); RuleFor(command => command.CardHolderName).NotEmpty();
RuleFor(command => command.CardExpiration).NotEmpty().Must(BeValidExpirationDate).WithMessage("Please specify a valid card expiration date"); RuleFor(command => command.CardExpiration).NotEmpty().Must(BeValidExpirationDate).WithMessage("Please specify a valid card expiration date");
RuleFor(command => command.CardSecurityNumber).NotEmpty().Length(3); RuleFor(command => command.CardSecurityNumber).NotEmpty().Length(3);
RuleFor(command => command.CardTypeId).NotEmpty(); RuleFor(command => command.CardTypeId).NotEmpty();
RuleFor(command => command.OrderItems).Must(ContainOrderItems).WithMessage("No order items found"); RuleFor(command => command.OrderItems).Must(ContainOrderItems).WithMessage("No order items found");
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
} }
private bool BeValidExpirationDate(DateTime dateTime) private bool BeValidExpirationDate(DateTime dateTime)
@ -34,4 +37,4 @@ namespace Ordering.API.Application.Validations
return orderItems.Any(); return orderItems.Any();
} }
} }
} }

View File

@ -1,13 +1,16 @@
using FluentValidation; using FluentValidation;
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands; using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
using Microsoft.Extensions.Logging;
namespace Ordering.API.Application.Validations namespace Ordering.API.Application.Validations
{ {
public class IdentifiedCommandValidator : AbstractValidator<IdentifiedCommand<CreateOrderCommand,bool>> public class IdentifiedCommandValidator : AbstractValidator<IdentifiedCommand<CreateOrderCommand,bool>>
{ {
public IdentifiedCommandValidator() public IdentifiedCommandValidator(ILogger<IdentifiedCommandValidator> logger)
{ {
RuleFor(command => command.Id).NotEmpty(); RuleFor(command => command.Id).NotEmpty();
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
} }
} }
} }

View File

@ -1,17 +1,16 @@
using FluentValidation; using FluentValidation;
using Microsoft.Extensions.Logging;
using Ordering.API.Application.Commands; using Ordering.API.Application.Commands;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Ordering.API.Application.Validations namespace Ordering.API.Application.Validations
{ {
public class ShipOrderCommandValidator : AbstractValidator<ShipOrderCommand> public class ShipOrderCommandValidator : AbstractValidator<ShipOrderCommand>
{ {
public ShipOrderCommandValidator() public ShipOrderCommandValidator(ILogger<ShipOrderCommandValidator> logger)
{ {
RuleFor(order => order.OrderNumber).NotEmpty().WithMessage("No orderId found"); RuleFor(order => order.OrderNumber).NotEmpty().WithMessage("No orderId found");
logger.LogTrace("----- INSTANCE CREATED - {ClassName}", GetType().Name);
} }
} }
} }

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Ordering/Ordering.API WORKDIR /src/src/Services/Ordering/Ordering.API
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Ordering/Ordering.BackgroundTasks WORKDIR /src/src/Services/Ordering/Ordering.BackgroundTasks
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Ordering/Ordering.SignalrHub WORKDIR /src/src/Services/Ordering/Ordering.SignalrHub
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Services/Payment/Payment.API WORKDIR /src/src/Services/Payment/Payment.API
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR "/src/src/Services/Webhooks/Webhooks.API" WORKDIR "/src/src/Services/Webhooks/Webhooks.API"
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Web/WebMVC WORKDIR /src/src/Web/WebMVC
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -20,9 +20,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
COPY --from=node-build /web/wwwroot /src/src/Web/WebSPA/wwwroot/ COPY --from=node-build /web/wwwroot /src/src/Web/WebSPA/wwwroot/
WORKDIR /src/src/Web/WebSPA WORKDIR /src/src/Web/WebSPA

View File

@ -13,9 +13,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Web/WebStatus WORKDIR /src/src/Web/WebStatus
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app

View File

@ -14,9 +14,6 @@ COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/ COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/ COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . . COPY . .
WORKDIR /src/src/Web/WebhookClient WORKDIR /src/src/Web/WebhookClient
RUN dotnet publish -c Release -o /app RUN dotnet publish -c Release -o /app