split docker compose file

This commit is contained in:
2025-03-27 13:34:17 +01:00
parent 6ec45fc9db
commit d94c558989
11 changed files with 143 additions and 105 deletions

View File

@@ -0,0 +1,10 @@
services:
app:
build:
context: ../..
dockerfile: docker/Dockerfile
depends_on:
flyway:
condition: service_completed_successfully
postgresql:
condition: service_healthy

View File

@@ -0,0 +1,43 @@
services:
redis:
image: redis/redis-stack:7.4.0-v3
healthcheck:
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
volumes:
- redis_data:/data
- redisinsight_data:/redisinsight
flyway:
image: flyway/flyway
command: migrate
depends_on:
postgresql:
condition: service_healthy
volumes:
- ../../migrations/events:/flyway/sql
- ../flyway.conf:/flyway/conf/flyway.conf
restart: no
postgresql:
image: postgres:17.4
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/postgresql_password
POSTGRES_USER: event-demo
secrets:
- postgresql_password
healthcheck:
test: ["CMD-SHELL", "sh -c 'pg_isready -U event-demo'"]
interval: 1s
timeout: 5s
retries: 10
volumes:
- postgresql_data:/var/lib/postgresql/data
secrets:
postgresql_password:
file: ../postgresql.secret
volumes:
redis_data:
redisinsight_data:
postgresql_data:

View File

@@ -0,0 +1,8 @@
services:
redis:
ports:
- "6379:6379"
postgresql:
ports:
- "5432:5432"

View File

@@ -0,0 +1,17 @@
services:
pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: $PGADMIN_DEFAULT_EMAIL
PGADMIN_DEFAULT_PASSWORD_FILE: /run/secrets/pgadmin_password
secrets:
- pgadmin_password
volumes:
- pgadmin_data:/var/lib/pgadmin
secrets:
pgadmin_password:
file: ../pgadmin.secret
volumes:
pgadmin_data:

View File

@@ -0,0 +1,17 @@
services:
traefik:
image: traefik:3.3.4
command:
- "--api.insecure=true"
- "--api.dashboard=true"
- "--providers.docker=true"
- "--log.level=DEBUG"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`dashboard.traefik.me`)"
- "traefik.http.services.api.loadbalancer.server.port=8080"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.middlewares=api-auth"
- "traefik.http.middlewares.api-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/" # test:test