Add docker-compose.yml following stwaddle stack pattern

Joins web (nginx-proxy), apps-internal (database), and auth-public
(OIDC discovery without hairpinning) networks. External networks are
pre-created by the stwaddle infra compose; apps-db is defined here
so the budget service can be deployed standalone.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Spencer Twaddle
2026-05-02 15:58:06 -05:00
parent 4dc5ad4910
commit c3d1420c4c
+40
View File
@@ -0,0 +1,40 @@
services:
budget:
image: ${IMAGE_REGISTRY:-}budget:latest
environment:
- VIRTUAL_HOST=${BUDGET_VIRTUAL_HOST:-budget.stwaddle.com}
- LETSENCRYPT_HOST=${BUDGET_LETSENCRYPT_HOST:-budget.stwaddle.com}
- VIRTUAL_PORT=8080
- ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT:-Production}
- ConnectionStrings__DefaultConnection=Host=apps-db;Port=5432;Database=${POSTGRES_DB:-budget};Username=${POSTGRES_USER:-budget};Password=${POSTGRES_PASSWORD}
depends_on:
- apps-db
- auth
networks:
- web
- apps-internal
- auth-public
restart: unless-stopped
apps-db:
image: postgres:16-alpine
environment:
- POSTGRES_DB=${POSTGRES_DB:-budget}
- POSTGRES_USER=${POSTGRES_USER:-budget}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- apps-db-data:/var/lib/postgresql/data
networks:
- apps-internal
restart: unless-stopped
networks:
web:
external: true
apps-internal:
external: true
auth-public:
external: true
volumes:
apps-db-data: