services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: cpx_user POSTGRES_PASSWORD: cpx_password POSTGRES_DB: cpx_studio ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U cpx_user -d cpx_studio"] interval: 10s timeout: 5s retries: 5 app: build: context: . dockerfile: Dockerfile.local restart: unless-stopped ports: - "3000:3000" env_file: - .env environment: - NODE_ENV=development - DATABASE_URL=postgresql://cpx_user:cpx_password@postgres:5432/cpx_studio - NODE_OPTIONS=--max-http-header-size=12800000 volumes: - ./src:/app/src - ./public:/app/public - ./components.json:/app/components.json - ./drizzle.config.ts:/app/drizzle.config.ts - ./next-env.d.ts:/app/next-env.d.ts - ./next.config.mjs:/app/next.config.mjs - ./package.json:/app/package.json - ./postcss.config.js:/app/postcss.config.js - ./tailwind.config.ts:/app/tailwind.config.ts - ./tsconfig.json:/app/tsconfig.json - app_node_modules:/app/node_modules - app_next_data:/app/.next depends_on: postgres: condition: service_healthy command: npm run dev gradio: build: context: ./gradio dockerfile: Dockerfile restart: unless-stopped ports: - "7860:7860" environment: - NEXTJS_URL=http://app:3000 - API_KEY=${API_KEY} depends_on: - app volumes: postgres_data: app_node_modules: app_next_data: