Update Docker Compose with conflict-free ports
This commit is contained in:
229
docker-compose-fixed.yml
Normal file
229
docker-compose-fixed.yml
Normal file
@ -0,0 +1,229 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# Core processing services
|
||||
recorder:
|
||||
build:
|
||||
context: ./services/recorder
|
||||
dockerfile: Dockerfile
|
||||
container_name: voice-recorder
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- DISCORD_TOKEN=${DISCORD_TOKEN}
|
||||
- CLIENT_ID=${CLIENT_ID}
|
||||
- GUILD_ID=${GUILD_ID}
|
||||
- POSTGRES_URL=${POSTGRES_URL}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
volumes:
|
||||
- ./data/audio/raw:/app/audio/raw
|
||||
- ./data/logs:/app/logs
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
audio-processor:
|
||||
build:
|
||||
context: ./services/audio-processor
|
||||
dockerfile: Dockerfile
|
||||
container_name: voice-audio-processor
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- POSTGRES_URL=${POSTGRES_URL}
|
||||
volumes:
|
||||
- ./data/audio/raw:/app/audio/raw
|
||||
- ./data/audio/processed:/app/audio/processed
|
||||
- ./data/logs:/app/logs
|
||||
depends_on:
|
||||
- redis
|
||||
- postgres
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
whisper-service:
|
||||
build:
|
||||
context: ./services/whisper-service
|
||||
dockerfile: Dockerfile
|
||||
container_name: voice-whisper
|
||||
restart: unless-stopped
|
||||
runtime: nvidia
|
||||
environment:
|
||||
- NVIDIA_VISIBLE_DEVICES=all
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- POSTGRES_URL=${POSTGRES_URL}
|
||||
- WHISPER_MODEL=${WHISPER_MODEL:-large-v2}
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
volumes:
|
||||
- ./data/audio/processed:/app/audio/processed
|
||||
- ./data/models:/app/models
|
||||
- ./data/logs:/app/logs
|
||||
ports:
|
||||
- "8001:8000" # No conflict - available
|
||||
depends_on:
|
||||
- redis
|
||||
- postgres
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
translator:
|
||||
build:
|
||||
context: ./services/translator
|
||||
dockerfile: Dockerfile
|
||||
container_name: voice-translator
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- POSTGRES_URL=${POSTGRES_URL}
|
||||
- GOOGLE_TRANSLATE_API_KEY=${GOOGLE_TRANSLATE_API_KEY}
|
||||
- DEEPL_API_KEY=${DEEPL_API_KEY}
|
||||
- AZURE_TRANSLATOR_KEY=${AZURE_TRANSLATOR_KEY}
|
||||
- AZURE_TRANSLATOR_REGION=${AZURE_TRANSLATOR_REGION}
|
||||
volumes:
|
||||
- ./data/logs:/app/logs
|
||||
ports:
|
||||
- "8002:8000" # No conflict - available
|
||||
depends_on:
|
||||
- redis
|
||||
- postgres
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
transcriber:
|
||||
build:
|
||||
context: ./services/transcriber
|
||||
dockerfile: Dockerfile
|
||||
container_name: voice-transcriber
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- DISCORD_TOKEN=${DISCORD_TOKEN}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- POSTGRES_URL=${POSTGRES_URL}
|
||||
- WHISPER_SERVICE_URL=http://whisper-service:8000
|
||||
- TRANSLATOR_SERVICE_URL=http://translator:8000
|
||||
volumes:
|
||||
- ./data/logs:/app/logs
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
- whisper-service
|
||||
- translator
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
dashboard:
|
||||
build:
|
||||
context: ./services/dashboard
|
||||
dockerfile: Dockerfile
|
||||
container_name: voice-dashboard
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_URL=${POSTGRES_URL}
|
||||
- REDIS_URL=redis://redis:6379
|
||||
- NODE_ENV=production
|
||||
volumes:
|
||||
- ./data/logs:/app/logs
|
||||
ports:
|
||||
- "3010:3000" # Changed from 3000 to avoid Gitea conflict
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
# Data services
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
container_name: voice-postgres
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-voice_translator}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- ./data/database:/var/lib/postgresql/data
|
||||
- ./infrastructure/database/init.sql:/docker-entrypoint-initdb.d/init.sql
|
||||
ports:
|
||||
- "5434:5432" # Changed from 5432 to avoid Excalidraw conflict
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: voice-redis
|
||||
restart: unless-stopped
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- ./data/redis:/data
|
||||
- ./infrastructure/redis/redis.conf:/usr/local/etc/redis/redis.conf
|
||||
ports:
|
||||
- "6379:6379" # No conflict - available
|
||||
networks:
|
||||
- voice-translator
|
||||
|
||||
# Optional management services
|
||||
nginx:
|
||||
image: nginx:alpine
|
||||
container_name: voice-nginx
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./infrastructure/nginx/nginx.conf:/etc/nginx/nginx.conf
|
||||
- ./infrastructure/nginx/ssl:/etc/nginx/ssl
|
||||
depends_on:
|
||||
- dashboard
|
||||
networks:
|
||||
- voice-translator
|
||||
profiles:
|
||||
- proxy
|
||||
|
||||
# Optional admin interfaces
|
||||
pgadmin:
|
||||
image: dpage/pgadmin4:latest
|
||||
container_name: voice-pgadmin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_EMAIL:-admin@example.com}
|
||||
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD}
|
||||
ports:
|
||||
- "8085:80" # Changed from 8080 to avoid Owncast conflict
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- voice-translator
|
||||
profiles:
|
||||
- admin
|
||||
|
||||
redis-commander:
|
||||
image: rediscommander/redis-commander:latest
|
||||
container_name: voice-redis-commander
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- REDIS_HOSTS=local:redis:6379
|
||||
ports:
|
||||
- "8086:8081" # Changed from 8081 to avoid Restreamer conflict
|
||||
depends_on:
|
||||
- redis
|
||||
networks:
|
||||
- voice-translator
|
||||
profiles:
|
||||
- admin
|
||||
|
||||
networks:
|
||||
voice-translator:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
redis_data:
|
||||
audio_data:
|
||||
model_cache:
|
Reference in New Issue
Block a user