107 lines
2.8 KiB
YAML
Executable File
107 lines
2.8 KiB
YAML
Executable File
services:
|
|
# 1. MIGRÁCIÓ (Adatbázis szerkezet frissítése)
|
|
migrate:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
container_name: service_finder_migrate
|
|
env_file: .env
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./alembic.ini:/app/alembic.ini
|
|
- ./migrations:/app/migrations
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DATABASE_URL: ${MIGRATION_DATABASE_URL}
|
|
command: ["bash", "-lc", "alembic upgrade head"]
|
|
networks:
|
|
- default # Hogy lássa a saját hálózatát
|
|
- shared_db_net # Hogy lássa a KÖZPONTI adatbázist!
|
|
restart: "no"
|
|
|
|
# 2. BACKEND API
|
|
service_finder_api:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
container_name: service_finder_api
|
|
env_file: .env
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./alembic.ini:/app/alembic.ini
|
|
- ./migrations:/app/migrations
|
|
# Fontos: A 0.0.0.0 host kell, hogy a Proxy elérje!
|
|
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --proxy-headers --forwarded-allow-ips="*"
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS}
|
|
MINIO_ENDPOINT: ${MINIO_ENDPOINT}
|
|
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
|
|
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
|
|
depends_on:
|
|
migrate:
|
|
condition: service_completed_successfully
|
|
minio:
|
|
condition: service_started
|
|
redis:
|
|
condition: service_started
|
|
networks:
|
|
- default
|
|
- shared_db_net # <--- ITT KAPCSOLÓDIK A KÖZPONTHOZ
|
|
restart: unless-stopped
|
|
|
|
# 3. MINIO (Lokális marad a projekthez, de NAS-ra ment)
|
|
minio:
|
|
image: minio/minio
|
|
container_name: service_finder_minio
|
|
env_file: .env
|
|
command: server /data --console-address ":9001"
|
|
environment:
|
|
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
|
|
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
|
|
volumes:
|
|
- /mnt/nas/app_data/minio_data:/data
|
|
ports:
|
|
- "9000:9000"
|
|
- "9001:9001"
|
|
networks:
|
|
- default
|
|
restart: unless-stopped
|
|
|
|
# 4. REDIS (Gyorsítótár - Lokális marad)
|
|
redis:
|
|
image: redis:alpine
|
|
container_name: service_finder_redis
|
|
volumes:
|
|
- /mnt/nas/app_data/redis_data:/data
|
|
networks:
|
|
- default
|
|
restart: unless-stopped
|
|
|
|
# 5. FRONTEND (Weboldal)
|
|
service_finder_frontend:
|
|
build:
|
|
context: ./frontend
|
|
container_name: service_finder_frontend
|
|
env_file: .env
|
|
ports:
|
|
- "3001:80"
|
|
environment:
|
|
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS}
|
|
networks:
|
|
- default
|
|
depends_on:
|
|
service_finder_api:
|
|
condition: service_started
|
|
restart: unless-stopped
|
|
|
|
# HÁLÓZATOK DEFINIÁLÁSA
|
|
networks:
|
|
default:
|
|
driver: bridge
|
|
# Ez a kulcs! Megmondjuk neki, hogy használja a már létező központi hálót:
|
|
shared_db_net:
|
|
external: true |