mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-15 18:14:44 +00:00
1.7 KiB
1.7 KiB
Docker Deployment Architecture
--8<-- "web/diagrams/deployment.mmd"
Notes
- Dev network (
devnet, bridge): internal DNS resolves service names such assqlserverandapi.core. Volumes:sqlserverdata-dev,nuget-cache-dev,seaweedfsdata-dev. Startup order: SQL Server (health check) → migrations (run-once) → seed (run-once, depends onseaweedfs) → API (long-running, depends on seed). - Test network (
testnet, bridge): all test components isolated; fresh DB instance each run (CLEAR_DATABASE=true, ephemeralsqlserverdata-test/seaweedfsdata-testvolumes).api.specs,unit.tests, andfrontend.testsall run as separate containers, results aggregated. - Prod network (
prodnet, bridge): isolated from dev/test networks. Volumes:sqlserverdata-prod,nuget-cache-prod. No seed step in production. - Database-only environment: same devnet volumes/images as
docker-compose.dev.yaml, minusapi.core,frontend, andmailpit— for working against the database (and object storage, sinceseaweedfsis still included) without running the API or website. - Minimal environment: database + migrations + seed +
seaweedfs+ mailpit, no API or frontend container — for frontend development against anAPI.Coreprocess run outside Docker. unit.testsbuildsDockerfile.tests, which restores/builds againstBiergarten.API.slnxthen runsdotnet testfor everyFeatures/*.Testsproject in turn (Features.Users.Tests,Features.Breweries.Tests,Features.Emails.Tests,Features.PhotoUpload.Tests), mocking each handler's repository/service dependencies with Moq — no real database needed..trxresults are readable by Visual Studio, Azure DevOps, and GitHub Actions.