UNS/docker-compose.yaml

116 lines
2.4 KiB
YAML

version: '3.9'
networks:
dns_net:
driver: bridge
services:
# For ended simulations
mongo:
image: mongo
container_name: dns-mongo-db
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}
ports:
- '27017:27017'
networks:
- dns_net
volumes:
- mongodata:/data/db
restart: always
# For user management and etc
postgres:
image: postgres:13
container_name: dns-postgres-db
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
ports:
- "${POSTGRES_PORT}:5432"
networks:
- dns_net
restart: always
# For web
nginx:
image: nginx:alpine
container_name: dns-nginx
ports:
- "${NGINX_PORT}:80"
volumes:
# - ./frontend/geotouchka-web-application/build:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/nginx.conf
networks:
- dns_net
depends_on:
- front
restart: always
# Api server - For kernel communication
server:
container_name: dns-server
build:
context: ./src/server
dockerfile: Dockerfile
env_file: ".env"
ports:
- "8080:8080"
depends_on:
- postgres
- mongo
networks:
- dns_net
restart: always
# Socket hub - For websocket communication
hub:
container_name: dns-hub
build:
context: ./src/microservices/hub
dockerfile: Dockerfile
env_file: ".env"
ports:
- "10001:10000"
networks:
- dns_net
restart: always
# Frontend - For web ui
front:
container_name: dns-ui
build:
context: ./src/usn-frontend
dockerfile: test.Dockerfile
env_file: ".env"
volumes:
- ./src/usn-frontend:/app
working_dir: /app
command: ["npm", "run", "dev"]
ports:
- "3000:3000"
networks:
- dns_net
restart: always
#
math:
container_name: dns-math
build:
context: ./src/microservices/py-simulation
dockerfile: Dockerfile
env_file: ".env"
ports:
- "10000:5000"
networks:
- dns_net
restart: always
# For messaging
volumes:
postgres_data:
mongodata:
driver: local