Add Docker Compose configuration for web, code-interpreter, and Redis services

- Introduced a new `docker-compose.yaml` file to define services for the application.
- Configured the `web` service with environment variables for production and port mapping.
- Added a `code-interpreter` service with its own environment variable and volume setup.
- Included a `redis` service using the Alpine image with persistent volume for data storage.
- Ensured proper dependency management between services.
This commit is contained in:
NikitolProject 2025-01-09 09:04:08 +03:00
parent 15d5ac5a61
commit d468ecca74

60
docker-compose.yaml Normal file
View File

@ -0,0 +1,60 @@
version: '3.8'
services:
web:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- XAI_API_KEY=${XAI_API_KEY}
- UPSTASH_REDIS_REST_URL=${UPSTASH_REDIS_REST_URL}
- UPSTASH_REDIS_REST_TOKEN=${UPSTASH_REDIS_REST_TOKEN}
- ELEVENLABS_API_KEY=${ELEVENLABS_API_KEY}
- TAVILY_API_KEY=${TAVILY_API_KEY}
- EXA_API_KEY=${EXA_API_KEY}
- TMDB_API_KEY=${TMDB_API_KEY}
- YT_ENDPOINT=${YT_ENDPOINT}
- FIRECRAWL_API_KEY=${FIRECRAWL_API_KEY}
- OPENWEATHER_API_KEY=${OPENWEATHER_API_KEY}
- SANDBOX_TEMPLATE_ID=${SANDBOX_TEMPLATE_ID}
- GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY}
- MAPBOX_ACCESS_TOKEN=${MAPBOX_ACCESS_TOKEN}
- AZURE_TRANSLATOR_KEY=${AZURE_TRANSLATOR_KEY}
- AZURE_TRANSLATOR_LOCATION=${AZURE_TRANSLATOR_LOCATION}
- AZURE_RESOURCE_NAME=${AZURE_RESOURCE_NAME}
- AZURE_API_KEY=${AZURE_API_KEY}
- TRIPADVISOR_API_KEY=${TRIPADVISOR_API_KEY}
- AVIATION_STACK_API_KEY=${AVIATION_STACK_API_KEY}
- CRON_SECRET=${CRON_SECRET}
- BLOB_READ_WRITE_TOKEN=${BLOB_READ_WRITE_TOKEN}
- NEXT_PUBLIC_MAPBOX_TOKEN=${NEXT_PUBLIC_MAPBOX_TOKEN}
- NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY}
- NEXT_PUBLIC_POSTHOG_HOST=${NEXT_PUBLIC_POSTHOG_HOST}
- NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=${NEXT_PUBLIC_GOOGLE_MAPS_API_KEY}
volumes:
- .:/app
- /app/node_modules
depends_on:
- code-interpreter
code-interpreter:
build:
context: .
dockerfile: e2b.Dockerfile
environment:
- E2B_API_KEY=${E2B_API_KEY}
volumes:
- ./certificates:/app/certificates
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
volumes:
redis_data: