Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

Commit 4460fee

Browse files
authored
Merge pull request #2 from dotnet-architecture/dev
Merge origin to fork
2 parents 051340a + c6ad3f2 commit 4460fee

File tree

389 files changed

+11826
-9023
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

389 files changed

+11826
-9023
lines changed

.dockerignore

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
docker-compose*.yml
88
docker-compose.dcproj
99
*.sln
10-
!eShopOnContainers-ServicesAndWebApps.sln
1110
*.md
1211
hosts
1312
LICENSE
@@ -31,4 +30,13 @@ cli-linux
3130
**/wwwroot/lib/*
3231
global.json
3332
**/appsettings.localhost.json
34-
src/Web/WebSPA/wwwroot/
33+
src/Web/WebSPA/wwwroot/
34+
packages/
35+
csproj-files/
36+
test-results/
37+
TestResults/
38+
src/Mobile/
39+
src/Web/Catalog.WebForms/
40+
src/Web/WebMonolithic/
41+
src/BuildingBlocks/CommandBus/
42+
src/Services/Marketing/Infrastructure/

.gitignore

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ bld/
2525

2626
# Visual Studio 2015 cache/options directory
2727
.vs/
28+
29+
# Dockerfile projects folder for restore-packages script
30+
csproj-files/
31+
32+
# .js files created on build:
33+
src/Web/WebMVC/wwwroot/js/site*
34+
2835
# Uncomment if you have tasks that create the project's static files in wwwroot
2936
**/wwwroot/lib/
3037
!/wwwroot/lib/signalr
@@ -38,6 +45,8 @@ bld/
3845
*.VisualState.xml
3946
TestResult.xml
4047

48+
tests-results/
49+
4150
# Build Results of an ATL Project
4251
[Dd]ebugPS/
4352
[Rr]eleasePS/
@@ -265,4 +274,9 @@ pub/
265274
.mfractor
266275

267276
# Ignore HealthCheckdb
268-
*healthchecksdb*
277+
*healthchecksdb*
278+
279+
# Ignores all extra inf.yaml and app.yaml that are copied by prepare-devspaces.ps1
280+
src/**/app.yaml
281+
src/**/inf.yaml
282+

README.md

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,25 @@
1-
# eShopOnContainers - Microservices Architecture and Containers based Reference Application (**BETA state** - Visual Studio 2017 and CLI environments compatible)
1+
# eShopOnContainers - Microservices Architecture and Containers based Reference Application (**BETA state** - Visual Studio and CLI environments compatible)
22
Sample .NET Core reference application, powered by Microsoft, based on a simplified microservices architecture and Docker containers.
33

4-
[![Build status (Linux images)](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/All%20Microservices%20Linux)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=184)
4+
## Linux Build Status for 'dev' branch
55

6+
Dev branch contains the latest "stable" code, and their images are tagged with `:dev` in our [Docker Hub](https://cloud.docker.com/u/eshop/repository/list):
7+
8+
| Basket API | Catalog API | Identity API | Location API |
9+
| ------------- | ------------- | ------------- | ------------- |
10+
| [![Basket API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/basket?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=199&branchName=dev) | [![Catalog API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/catalog?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=197&branchName=dev) | [![Identity API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/identity?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=200&branchName=dev) | [![Location API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/location?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=202&branchName=dev) |
11+
12+
| Marketing API | Ordering API | Payment API | Api Gateways base image |
13+
| ------------- | ------------- | ------------- | ------------- |
14+
| [![Marketing API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/marketing?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=203&branchName=dev) | [![Ordering API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/ordering?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=198&branchName=dev) | [![Payment API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/payment?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=205&branchName=dev) | [![Api Gateways base image](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/apigws?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=201&branchName=dev)
15+
16+
| Web Shopping Aggregator | Mobile Shopping Aggregator | WebMVC Client | WebSPA Client |
17+
| ------------- | ------------- | ------------- | ------------- |
18+
| [![Web Shopping Aggregator](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/web-shopping-agg?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=206&branchName=dev) | [![Mobile Shopping Aggregator](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/mobile-shopping-agg?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=204&branchName=dev) | [![WebMVC Client](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webmvc?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=209&branchName=dev) | [![WebSPA Client](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webspa?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=210&branchName=dev) |
19+
20+
| Web Status | Webhooks API | Webbhooks demo client |
21+
| ------------- | ------------- | ------------- |
22+
[![Web Status](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webstatus?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=211&branchName=dev) | [![Webhooks API](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webhooks?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=207&branchName=dev) | [![Webhooks demo client](https://msftdevtools.visualstudio.com/eShopOnContainers/_apis/build/status/microservices/webhooks-client?branchName=dev)](https://msftdevtools.visualstudio.com/eShopOnContainers/_build/latest?definitionId=208&branchName=dev) |
623

724
## IMPORTANT NOTES!
825
**You can use either the latest version of Visual Studio or simply Docker CLI and .NET CLI for Windows, Mac and Linux**.
@@ -63,6 +80,12 @@ The architecture proposes a microservice oriented architecture implementation wi
6380
> <p> A similar case is defined in regard to Redis cache running as a container for the development environment. Or a No-SQL database (MongoDB) running as a container.
6481
> <p> However, in a real production environment it is recommended to have your databases (SQL Server, Redis, and the NO-SQL database, in this case) in HA (High Available) services like Azure SQL Database, Redis as a service and Azure CosmosDB instead the MongoDB container (as both systems share the same access protocol). If you want to change to a production configuration, you'll just need to change the connection strings once you have set up the servers in an HA cloud or on-premises.
6582
83+
> ### Important Note on EventBus
84+
> In this solution's current EventBus is a simplified implementation, mainly used for learning purposes (development and testing), so it doesn't handle all production scenarios, most notably on error handling. <p>
85+
> The following forks provide production environment level implementation examples with eShopOnContainers :
86+
> * Implementation with [CAP](https://github.com/dotnetcore/CAP) : https://github.com/yang-xiaodong/eShopOnContainers
87+
> * Implementation with [NServiceBus](https://github.com/Particular/NServiceBus) : https://github.com/Particular/eShopOnContainers
88+
6689
## Related documentation and guidance
6790
While developing this reference application, we've been creating a reference <b>Guide/eBook</b> focusing on <b>architecting and developing containerized and microservice based .NET Applications</b> (download link available below) which explains in detail how to develop this kind of architectural style (microservices, Docker containers, Domain-Driven Design for certain microservices) plus other simpler architectural styles, like monolithic apps that can also live as Docker containers.
6891
<p>
@@ -106,7 +129,7 @@ Finally, those microservices are consumed by multiple client web and mobile apps
106129
<img src="img/xamarin-mobile-App.png">
107130

108131
## Setting up your development environment for eShopOnContainers
109-
### Visual Studio 2017 and Windows based
132+
### Visual Studio 2017 (or above) and Windows based
110133
This is the more straightforward way to get started:
111134
https://github.com/dotnet-architecture/eShopOnContainers/wiki/02.-Setting-eShopOnContainers-in-a-Visual-Studio-2017-environment
112135

@@ -126,5 +149,5 @@ As mentioned, we'd appreciate your feedback, improvements and ideas.
126149
You can create new issues at the issues section, do pull requests and/or send emails to **[email protected]**
127150

128151
## Questions
129-
[QUESTION] Answer +1 if the solution is working for you (Through VS2017 or CLI environment):
152+
[QUESTION] Answer +1 if the solution is working for you (Through VS or CLI environment):
130153
https://github.com/dotnet/eShopOnContainers/issues/107
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
variables:
2+
registryEndpoint: eshop-registry
3+
trigger:
4+
branches:
5+
include:
6+
- master
7+
- dev
8+
paths:
9+
include:
10+
- src/ApiGateways/*
11+
- k8s/helm/apigwmm/*
12+
- k8s/helm/apigwms/*
13+
- k8s/helm/apigwwm/*
14+
- k8s/helm/apigwws/*
15+
exclude:
16+
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/*
17+
- src/ApiGateways/Web.Bff.Shopping/aggregator/*
18+
jobs:
19+
- job: BuildLinux
20+
pool:
21+
vmImage: 'ubuntu-16.04'
22+
steps:
23+
- task: DockerCompose@0
24+
displayName: Compose build apigws
25+
inputs:
26+
dockerComposeCommand: 'build mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw'
27+
containerregistrytype: Container Registry
28+
dockerRegistryEndpoint: $(registryEndpoint)
29+
dockerComposeFile: docker-compose.yml
30+
qualifyImageNames: true
31+
projectName: ""
32+
dockerComposeFileArgs: |
33+
TAG=$(Build.SourceBranchName)
34+
- task: DockerCompose@0
35+
displayName: Compose push apigws
36+
inputs:
37+
dockerComposeCommand: 'push mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw'
38+
containerregistrytype: Container Registry
39+
dockerRegistryEndpoint: $(registryEndpoint)
40+
dockerComposeFile: docker-compose.yml
41+
qualifyImageNames: true
42+
projectName: ""
43+
dockerComposeFileArgs: |
44+
TAG=$(Build.SourceBranchName)
45+
- task: CopyFiles@2
46+
inputs:
47+
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
48+
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
49+
- task: PublishBuildArtifacts@1
50+
inputs:
51+
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
52+
artifactName: helm
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
pool:
2+
vmImage: 'ubuntu-16.04'
3+
variables:
4+
registryEndpoint: eshop-registry
5+
trigger:
6+
branches:
7+
include:
8+
- master
9+
- dev
10+
paths:
11+
include:
12+
- src/BuildingBlocks/*
13+
- src/Services/Basket/*
14+
- k8s/helm/basket-api/*
15+
steps:
16+
- task: DockerCompose@0
17+
displayName: Compose build basket
18+
inputs:
19+
dockerComposeCommand: 'build basket.api'
20+
containerregistrytype: Container Registry
21+
dockerRegistryEndpoint: $(registryEndpoint)
22+
dockerComposeFile: docker-compose.yml
23+
qualifyImageNames: true
24+
projectName: ""
25+
dockerComposeFileArgs: |
26+
TAG=$(Build.SourceBranchName)
27+
- task: DockerCompose@0
28+
displayName: Compose push basket
29+
inputs:
30+
dockerComposeCommand: 'push basket.api'
31+
containerregistrytype: Container Registry
32+
dockerRegistryEndpoint: $(registryEndpoint)
33+
dockerComposeFile: docker-compose.yml
34+
qualifyImageNames: true
35+
projectName: ""
36+
dockerComposeFileArgs: |
37+
TAG=$(Build.SourceBranchName)
38+
- task: CopyFiles@2
39+
inputs:
40+
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
41+
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
42+
- task: PublishBuildArtifacts@1
43+
inputs:
44+
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
45+
artifactName: helm
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
pool:
2+
vmImage: 'ubuntu-16.04'
3+
variables:
4+
registryEndpoint: eshop-registry
5+
trigger:
6+
branches:
7+
include:
8+
- master
9+
- dev
10+
paths:
11+
include:
12+
- src/BuildingBlocks/*
13+
- src/Services/Catalog/*
14+
- k8s/helm/catalog-api/*
15+
steps:
16+
- task: DockerCompose@0
17+
displayName: Compose build catalog
18+
inputs:
19+
dockerComposeCommand: 'build catalog.api'
20+
containerregistrytype: Container Registry
21+
dockerRegistryEndpoint: $(registryEndpoint)
22+
dockerComposeFile: docker-compose.yml
23+
qualifyImageNames: true
24+
projectName: ""
25+
dockerComposeFileArgs: |
26+
TAG=$(Build.SourceBranchName)
27+
- task: DockerCompose@0
28+
displayName: Compose push catalog
29+
inputs:
30+
dockerComposeCommand: 'push catalog.api'
31+
containerregistrytype: Container Registry
32+
dockerRegistryEndpoint: $(registryEndpoint)
33+
dockerComposeFile: docker-compose.yml
34+
qualifyImageNames: true
35+
projectName: ""
36+
dockerComposeFileArgs: |
37+
TAG=$(Build.SourceBranchName)
38+
- task: CopyFiles@2
39+
inputs:
40+
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
41+
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
42+
- task: PublishBuildArtifacts@1
43+
inputs:
44+
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
45+
artifactName: helm
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
pool:
2+
vmImage: 'ubuntu-16.04'
3+
variables:
4+
registryEndpoint: eshop-registry
5+
trigger:
6+
branches:
7+
include:
8+
- master
9+
- dev
10+
paths:
11+
include:
12+
- src/BuildingBlocks/*
13+
- src/Services/Identity/*
14+
- k8s/helm/identity-api/*
15+
steps:
16+
- task: DockerCompose@0
17+
displayName: Compose build identity
18+
inputs:
19+
dockerComposeCommand: 'build identity.api'
20+
containerregistrytype: Container Registry
21+
dockerRegistryEndpoint: $(registryEndpoint)
22+
dockerComposeFile: docker-compose.yml
23+
qualifyImageNames: true
24+
projectName: ""
25+
dockerComposeFileArgs: |
26+
TAG=$(Build.SourceBranchName)
27+
- task: DockerCompose@0
28+
displayName: Compose push identity
29+
inputs:
30+
dockerComposeCommand: 'push identity.api'
31+
containerregistrytype: Container Registry
32+
dockerRegistryEndpoint: $(registryEndpoint)
33+
dockerComposeFile: docker-compose.yml
34+
qualifyImageNames: true
35+
projectName: ""
36+
dockerComposeFileArgs: |
37+
TAG=$(Build.SourceBranchName)
38+
- task: CopyFiles@2
39+
inputs:
40+
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
41+
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
42+
- task: PublishBuildArtifacts@1
43+
inputs:
44+
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
45+
artifactName: helm
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
pool:
2+
vmImage: 'ubuntu-16.04'
3+
variables:
4+
registryEndpoint: eshop-registry
5+
trigger:
6+
branches:
7+
include:
8+
- master
9+
- dev
10+
paths:
11+
include:
12+
- k8s/helm/basket-data/*
13+
- k8s/helm/keystore-data/*
14+
- k8s/helm/nosql-data/*
15+
- k8s/helm/rabbitmq/*
16+
- k8s/helm/sql-data/*
17+
steps:
18+
- task: CopyFiles@2
19+
inputs:
20+
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
21+
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
22+
- task: PublishBuildArtifacts@1
23+
inputs:
24+
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
25+
artifactName: helm
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
pool:
2+
vmImage: 'ubuntu-16.04'
3+
variables:
4+
registryEndpoint: eshop-registry
5+
trigger:
6+
branches:
7+
include:
8+
- master
9+
- dev
10+
paths:
11+
include:
12+
- src/BuildingBlocks/*
13+
- src/Services/Location/*
14+
- k8s/helm/locations-api/*
15+
steps:
16+
- task: DockerCompose@0
17+
displayName: Compose build locations
18+
inputs:
19+
dockerComposeCommand: 'build locations.api'
20+
containerregistrytype: Container Registry
21+
dockerRegistryEndpoint: $(registryEndpoint)
22+
dockerComposeFile: docker-compose.yml
23+
qualifyImageNames: true
24+
projectName: ""
25+
dockerComposeFileArgs: |
26+
TAG=$(Build.SourceBranchName)
27+
- task: DockerCompose@0
28+
displayName: Compose push locations
29+
inputs:
30+
dockerComposeCommand: 'push locations.api'
31+
containerregistrytype: Container Registry
32+
dockerRegistryEndpoint: $(registryEndpoint)
33+
dockerComposeFile: docker-compose.yml
34+
qualifyImageNames: true
35+
projectName: ""
36+
dockerComposeFileArgs: |
37+
TAG=$(Build.SourceBranchName)
38+
- task: CopyFiles@2
39+
inputs:
40+
sourceFolder: $(Build.SourcesDirectory)/k8s/helm
41+
targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm
42+
- task: PublishBuildArtifacts@1
43+
inputs:
44+
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
45+
artifactName: helm

0 commit comments

Comments
 (0)