Files
67/docker-compose.yml
2026-06-22 22:39:08 +03:00

162 lines
3.9 KiB
YAML

x-go-service-env: &go-service-env
PORT: 8080
DATABASE_URL: postgres://${POSTGRES_USER:-fable}:${POSTGRES_PASSWORD:-fable_dev_password}@postgres:5432/${POSTGRES_DB:-fable}?sslmode=disable
TOKEN_SECRET: ${TOKEN_SECRET:-local-dev-secret-change-me}
TOKEN_TTL: ${TOKEN_TTL:-24h}
services:
postgres:
image: postgres:17-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-fable}
POSTGRES_USER: ${POSTGRES_USER:-fable}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-fable_dev_password}
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./database/migrations:/docker-entrypoint-initdb.d:ro
gateway:
build:
context: .
dockerfile: apps/gateway/Dockerfile
environment:
GATEWAY_PORT: 3000
CORS_ORIGIN: "*"
AUTH_SERVICE_URL: http://auth-service:8080
USER_SERVICE_URL: http://user-service:8080
CONTENT_SERVICE_URL: http://content-service:8080
TAXONOMY_SERVICE_URL: http://taxonomy-service:8080
SPEAKER_SERVICE_URL: http://speaker-service:8080
SUBSCRIPTION_SERVICE_URL: http://subscription-service:8080
NOTIFICATION_SERVICE_URL: http://notification-service:8080
COMMENT_SERVICE_URL: http://comment-service:8080
SEARCH_SERVICE_URL: http://search-service:8080
ANALYTICS_SERVICE_URL: http://analytics-service:8080
AUDIT_SERVICE_URL: http://audit-service:8080
MEDIA_SERVICE_URL: http://media-service:8080
ports:
- "3000:3000"
depends_on:
- auth-service
- user-service
- content-service
- taxonomy-service
- speaker-service
- subscription-service
- notification-service
- comment-service
- search-service
- analytics-service
- audit-service
- media-service
web:
build:
context: .
dockerfile: apps/web/Dockerfile
ports:
- "5173:80"
depends_on:
- gateway
auth-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: auth
environment: *go-service-env
user-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: user
environment: *go-service-env
content-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: content
environment: *go-service-env
taxonomy-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: taxonomy
environment: *go-service-env
speaker-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: speaker
environment: *go-service-env
subscription-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: subscription
environment: *go-service-env
notification-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: notification
environment: *go-service-env
comment-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: comment
environment: *go-service-env
search-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: search
environment: *go-service-env
analytics-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: analytics
environment: *go-service-env
audit-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: audit
environment: *go-service-env
media-service:
build:
context: .
dockerfile: infra/docker/go-service.Dockerfile
args:
SERVICE: media
environment: *go-service-env
volumes:
postgres_data: