| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- services:
- postgres-dev:
- image: postgres:16-alpine
- container_name: vidreview-db-dev
- environment:
- POSTGRES_USER: ${POSTGRES_USER}
- POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
- POSTGRES_DB: ${POSTGRES_DB}
- ports:
- - "5433:5432"
- volumes:
- - postgres_data_dev:/var/lib/postgresql/data
- healthcheck:
- test: ['CMD-SHELL', 'pg_isready -U vidreview_dev']
- interval: 5s
- timeout: 5s
- retries: 5
- init-dev:
- build:
- context: .
- dockerfile: Dockerfile.api
- container_name: vidreview-init-dev
- entrypoint: ['bash', '/scripts/init-admin.sh']
- environment:
- DB_HOST: postgres-dev
- DB_NAME: ${POSTGRES_DB}
- DB_USER: ${POSTGRES_USER}
- DB_PASS: ${POSTGRES_PASSWORD}
- API_CONTAINER: api-dev
- DB_CONTAINER: vidreview-db-dev
- OUTPUT_DIR: /seed-output
- ADMIN_EMAIL: ${ADMIN_EMAIL}
- ADMIN_NAME: ${ADMIN_NAME}
- volumes:
- - ./seed-output-dev:/seed-output
- - ./scripts:/scripts
- depends_on:
- postgres-dev:
- condition: service_healthy
- api-dev:
- condition: service_healthy
- restart: 'no'
- api-dev:
- build:
- context: .
- dockerfile: Dockerfile.api
- container_name: vidreview-api-dev
- env_file:
- - .env.dev
- environment:
- JWT_SECRET: ${JWT_SECRET}
- JWT_EXPIRES_IN: ${JWT_EXPIRES_IN}
- API_PORT: 3001
- NODE_ENV: ${NODE_ENV}
- UPLOAD_DIR: /app/uploads
- MAX_FILE_SIZE_MB: ${MAX_FILE_SIZE_MB}
- FRONTEND_URL: https://dev-vid.k9tech.space
- RESEND_API_KEY: ${RESEND_API_KEY}
- ports: []
- depends_on:
- postgres-dev:
- condition: service_healthy
- volumes:
- - uploads_dev:/app/uploads
- healthcheck:
- test: ['CMD-SHELL', 'wget -qO- http://localhost:3001/api/health || exit 0']
- interval: 10s
- timeout: 5s
- retries: 5
- worker-dev:
- build:
- context: .
- dockerfile: Dockerfile.api
- container_name: vidreview-worker-dev
- command: node src/worker/index.js
- env_file:
- - .env.dev
- environment:
- NODE_ENV: ${NODE_ENV}
- UPLOAD_DIR: /app/uploads
- POLL_INTERVAL_MS: ${POLL_INTERVAL_MS}
- WORKER_CONCURRENCY: ${WORKER_CONCURRENCY}
- ENCODER: ${ENCODER}
- depends_on:
- postgres-dev:
- condition: service_healthy
- volumes:
- - uploads_dev:/app/uploads
- restart: unless-stopped
- caddy-dev:
- image: caddy:2-alpine
- container_name: vidreview-caddy-dev
- ports:
- - "8083:8080"
- volumes:
- - ./Caddyfile.dev:/etc/caddy/Caddyfile:ro
- - uploads_dev:/app/uploads
- - caddy_data_dev:/data
- - caddy_config_dev:/config
- depends_on:
- - api-dev
- - frontend-dev
- frontend-dev:
- build:
- context: .
- dockerfile: Dockerfile.frontend
- args:
- NEXT_PUBLIC_API_URL: https://dev-vid.k9tech.space
- container_name: vidreview-frontend-dev
- env_file:
- - .env.dev
- environment:
- NEXT_PUBLIC_API_URL: https://dev-vid.k9tech.space
- NODE_ENV: ${NODE_ENV}
- expose:
- - "3000"
- depends_on:
- api-dev:
- condition: service_healthy
- volumes:
- postgres_data_dev:
- uploads_dev:
- seed_output_dev:
- caddy_data_dev:
- caddy_config_dev:
|