| version: '3.8' |
|
|
| services: |
| backend: |
| build: |
| context: ./backend |
| dockerfile: Dockerfile |
| ports: |
| - "5000:5000" |
| environment: |
| - SUPABASE_URL=${SUPABASE_URL} |
| - SUPABASE_KEY=${SUPABASE_KEY} |
| - CLIENT_ID=${CLIENT_ID} |
| - CLIENT_SECRET=${CLIENT_SECRET} |
| - REDIRECT_URL=${REDIRECT_URL} |
| - HUGGING_KEY=${HUGGING_KEY} |
| - JWT_SECRET_KEY=${JWT_SECRET_KEY} |
| - SECRET_KEY=${SECRET_KEY} |
| - DEBUG=${DEBUG} |
| - SCHEDULER_ENABLED=${SCHEDULER_ENABLED} |
| - PORT=5000 |
| - LANG=C.UTF-8 |
| - LC_ALL=C.UTF-8 |
| - PYTHONIOENCODING=utf-8 |
| - PYTHONUTF8=1 |
| - DOCKER_CONTAINER=true |
| - CELERY_BROKER_URL=redis://redis:6379/0 |
| - CELERY_RESULT_BACKEND=redis://redis:6379/0 |
| volumes: |
| - ./backend:/app |
| env_file: |
| - ./backend/.env |
| depends_on: |
| - supabase |
| - redis |
| networks: |
| - lin-network |
|
|
| frontend: |
| build: |
| context: ./frontend |
| dockerfile: Dockerfile |
| ports: |
| - "3000:3000" |
| volumes: |
| - ./frontend:/app |
| - /app/node_modules |
| environment: |
| - VITE_API_URL=http://localhost:5000/api |
| - VITE_NODE_ENV=development |
| depends_on: |
| - backend |
| networks: |
| - lin-network |
| profiles: |
| - dev |
|
|
| supabase: |
| image: supabase/postgres:latest |
| ports: |
| - "5432:5432" |
| environment: |
| - POSTGRES_DB=lin |
| - POSTGRES_USER=postgres |
| - POSTGRES_PASSWORD=postgres |
| volumes: |
| - supabase_data:/var/lib/postgresql/data |
| networks: |
| - lin-network |
|
|
| redis: |
| image: redis:alpine |
| ports: |
| - "6379:6379" |
| networks: |
| - lin-network |
|
|
| |
| nginx: |
| image: nginx:alpine |
| ports: |
| - "80:80" |
| - "443:443" |
| volumes: |
| - ./nginx.conf:/etc/nginx/nginx.conf |
| - ./frontend/build:/usr/share/nginx/html |
| - ./ssl:/etc/nginx/ssl |
| depends_on: |
| - frontend |
| - backend |
| networks: |
| - lin-network |
| profiles: |
| - prod |
|
|
| volumes: |
| supabase_data: |
|
|
| networks: |
| lin-network: |
| driver: bridge |