Skip to content

Commit 1c6be44

Browse files
committed
chore(docker): add postgres service and env-based database provider switching
1 parent 9da0f4a commit 1c6be44

4 files changed

Lines changed: 35 additions & 2 deletions

File tree

.env.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Required in base compose
22
SQL_PASSWORD=ChangeMe_SqlServer!
3+
POSTGRES_DB=taskmanagement
4+
POSTGRES_USER=postgres
5+
POSTGRES_PASSWORD=postgres
6+
DATABASE_PROVIDER=SqlServer
37

48
# Development defaults used by docker-compose.override.yml
59
OPENIDDICT_ENCRYPTION_KEY=DRjd/GnduI3Efzen9V9BvbNUfc/VKgXltV7Kbk9sMkY=

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,10 @@ Benefits:
169169
### Optional environment setup
170170
You can copy `.env.example` to `.env` and adjust values if needed.
171171

172+
Database selection:
173+
- `DATABASE_PROVIDER=SqlServer` (default, current baseline)
174+
- `DATABASE_PROVIDER=Postgres` (PostgreSQL path during migration)
175+
172176
### Run
173177
```bash
174178
docker compose up --build

docker-compose.override.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
version: '3.8'
22

33
services:
4+
postgres:
5+
ports:
6+
- "5432:5432"
7+
48
sqlserver:
59
environment:
610
- SQL_PASSWORD=${SQL_PASSWORD:-Passw0rd!1234}
@@ -10,10 +14,11 @@ services:
1014

1115
auth-service:
1216
environment:
13-
- DatabaseProvider=SqlServer
17+
- DatabaseProvider=${DATABASE_PROVIDER:-SqlServer}
1418
- ASPNETCORE_ENVIRONMENT=Development
1519
- ASPNETCORE_URLS=http://+:8080
1620
- ConnectionStrings__TaskManagementDbConnection=Server=sqlserver,1433;Database=TaskManagementDb;User Id=sa;Password=${SQL_PASSWORD:-Passw0rd!1234};TrustServerCertificate=True;
21+
- ConnectionStrings__TaskManagementDbConnectionPostgres=Host=postgres;Port=5432;Database=${POSTGRES_DB:-taskmanagement};Username=${POSTGRES_USER:-postgres};Password=${POSTGRES_PASSWORD:-postgres};
1722
- OpenIddict__Issuer=https://auth.localhost
1823
- OpenIddict__Audience=task_management_api_dev
1924
- OpenIddict__EncryptionKey=${OPENIDDICT_ENCRYPTION_KEY:-DRjd/GnduI3Efzen9V9BvbNUfc/VKgXltV7Kbk9sMkY=}
@@ -44,10 +49,11 @@ services:
4449
extra_hosts:
4550
- "auth.localhost:host-gateway"
4651
environment:
47-
- DatabaseProvider=SqlServer
52+
- DatabaseProvider=${DATABASE_PROVIDER:-SqlServer}
4853
- ASPNETCORE_ENVIRONMENT=Development
4954
- ASPNETCORE_URLS=http://+:8080
5055
- ConnectionStrings__TaskManagementDbConnection=Server=sqlserver,1433;Database=TaskManagementDb;User Id=sa;Password=${SQL_PASSWORD:-Passw0rd!1234};TrustServerCertificate=True;
56+
- ConnectionStrings__TaskManagementDbConnectionPostgres=Host=postgres;Port=5432;Database=${POSTGRES_DB:-taskmanagement};Username=${POSTGRES_USER:-postgres};Password=${POSTGRES_PASSWORD:-postgres};
5157
- OpenIddict__Issuer=https://auth.localhost
5258
- OpenIddict__Audience=task_management_api_dev
5359
- OpenIddict__EncryptionKey=${OPENIDDICT_ENCRYPTION_KEY:-DRjd/GnduI3Efzen9V9BvbNUfc/VKgXltV7Kbk9sMkY=}

docker-compose.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
11
version: '3.8'
22

33
services:
4+
postgres:
5+
image: postgres:16-alpine
6+
environment:
7+
- POSTGRES_DB=${POSTGRES_DB:-taskmanagement}
8+
- POSTGRES_USER=${POSTGRES_USER:-postgres}
9+
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
10+
volumes:
11+
- postgres-data:/var/lib/postgresql/data
12+
networks:
13+
- taskmanagement-network
14+
healthcheck:
15+
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-taskmanagement}"]
16+
interval: 10s
17+
retries: 10
18+
start_period: 10s
19+
timeout: 3s
20+
restart: unless-stopped
21+
422
sqlserver:
523
image: mcr.microsoft.com/mssql/server:2022-latest
624
environment:
@@ -81,6 +99,7 @@ networks:
8199
driver: bridge
82100

83101
volumes:
102+
postgres-data:
84103
sqlserver-data:
85104
caddy_data:
86105
caddy_config:

0 commit comments

Comments
 (0)