0% found this document useful (0 votes)
4 views2 pages

Docker Compose for Drakonarium App

This document is a Docker Compose configuration file that defines a multi-service application called 'drakonarium'. It includes services for MongoDB, Redis, a backend API, a frontend client, and an Nginx reverse proxy, with specified environment variables, ports, and volume mappings. The setup ensures that all services are connected through a common network and can restart unless stopped.

Uploaded by

vizidrogtanya
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views2 pages

Docker Compose for Drakonarium App

This document is a Docker Compose configuration file that defines a multi-service application called 'drakonarium'. It includes services for MongoDB, Redis, a backend API, a frontend client, and an Nginx reverse proxy, with specified environment variables, ports, and volume mappings. The setup ensures that all services are connected through a common network and can restart unless stopped.

Uploaded by

vizidrogtanya
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

version: '3.

8'

services:
# MongoDB Database
mongodb:
image: mongo:7.0
container_name: drakonarium-mongodb
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password123
MONGO_INITDB_DATABASE: drakonarium
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
- ./server/scripts/[Link]:/docker-entrypoint-initdb.d/[Link]:ro
networks:
- drakonarium-network

# Redis for session storage and caching


redis:
image: redis:7.2-alpine
container_name: drakonarium-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- drakonarium-network

# Backend API Server


api:
build:
context: ./server
dockerfile: Dockerfile
container_name: drakonarium-api
restart: unless-stopped
environment:
NODE_ENV: production
PORT: 5000
MONGODB_URI: mongodb://admin:password123@mongodb:27017/drakonarium?
authSource=admin
REDIS_URL: redis://redis:6379
JWT_SECRET: your-super-secret-jwt-key-change-in-production
CLIENT_URL: [Link]
ports:
- "5000:5000"
depends_on:
- mongodb
- redis
volumes:
- ./server/logs:/app/logs
- ./server/uploads:/app/uploads
networks:
- drakonarium-network

# Frontend Client
client:
build:
context: ./client
dockerfile: Dockerfile
container_name: drakonarium-client
restart: unless-stopped
ports:
- "3000:80"
depends_on:
- api
networks:
- drakonarium-network

# Nginx Reverse Proxy


nginx:
image: nginx:alpine
container_name: drakonarium-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/[Link]:/etc/nginx/[Link]:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
depends_on:
- client
- api
networks:
- drakonarium-network

volumes:
mongodb_data:
redis_data:

networks:
drakonarium-network:
driver: bridge

You might also like