@startuml deployment !theme plain skinparam backgroundColor #FFFFFF skinparam defaultFontName Arial title Docker Deployment Architecture package "Development Environment\n(docker-compose.dev.yaml)" #E3F2FD { node "SQL Server" as DevDB { database "Biergarten\nDatabase" } node "API Container" as DevAPI { component "API.Core" as API1 component "Port: 8080" } node "Migrations" as DevMig { component "Database.Migrations" } node "Seed" as DevSeed { component "Database.Seed" } } package "Test Environment\n(docker-compose.test.yaml)" #FFF3E0 { node "SQL Server" as TestDB { database "Test\nDatabase" } node "Migrations" as TestMig { component "Database.Migrations" } node "Seed" as TestSeed { component "Database.Seed" } node "API.Specs" as Specs { component "Reqnroll\nIntegration Tests" } node "Repository Tests" as RepoTests { component "xUnit\nData Access Tests" } node "Service Tests" as SvcTests { component "xUnit\nAuth Service Tests" } } folder "test-results/" as Results { file "api-specs/results.trx" file "repository-tests/results.trx" file "service-auth-tests/results.trx" } ' Development flow DevMig --> DevDB : migrate DevSeed --> DevDB : seed DevAPI --> DevDB : connect ' Test flow TestMig --> TestDB : migrate TestSeed --> TestDB : seed Specs --> TestDB : test RepoTests --> TestDB : test SvcTests ..> TestDB : mock Specs --> Results : export RepoTests --> Results : export SvcTests --> Results : export ' Notes note right of DevAPI Swagger UI: http://localhost:8080/swagger end note note right of Results Test results exported to host end note note bottom of TestDB Isolated environment Fresh database each run end note @enduml