From d468ecca7485fbab512266910c14cca5daf45c2d Mon Sep 17 00:00:00 2001 From: NikitolProject Date: Thu, 9 Jan 2025 09:04:08 +0300 Subject: [PATCH] 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. --- docker-compose.yaml | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docker-compose.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..46a8e5f --- /dev/null +++ b/docker-compose.yaml @@ -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: \ No newline at end of file