This file is used to define the deployment options for the various Docker containers that make up the Monolith on-premises deployment.
Unless you require an advanced deployment, you will not need to modify this file.
services:
monolith-api:
container_name: monolith-api
image: monolithforensics/monolith-api:latest
restart: always
volumes:
- ./data/logs:/usr/src/app/data/logs
- ./data/Monolith:/usr/src/app/data/Monolith
- ./data/Monolith-forms:/usr/src/app/data/Monolith-forms
ports:
- "3001:3001"
env_file:
- .env
mem_limit: 512m
monolith-forms:
container_name: monolith-forms
image: monolithforensics/monolith-forms:on-prem
restart: always
volumes:
- ./data/logs:/usr/src/app/data/logs
ports:
- "3003:3003"
mem_limit: 150m
monolith:
container_name: monolith
image: monolithforensics/monolith:on-prem
restart: always
volumes:
- ./data/logs:/usr/src/app/data/logs
ports:
- "3005:3005"
mem_limit: 150m
mysql:
container_name: mysql2
image: mysql:8.0.16
command: --default-authentication-plugin=mysql_native_password --sql_mode=""
security_opt:
- seccomp:unconfined
restart: always
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: ${MONOLITH_DB_PASSWORD}
MYSQL_USER: ${MONOLITH_DB_USER}
MYSQL_PASSWORD: ${MONOLITH_DB_PASSWORD}
MYSQL_DATABASE: ${MONOLITH_DB_NAME}
volumes:
- ./data/mysql:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d
mem_limit: 512m
nginx:
container_name: nginx
image: monolithforensics/nginx:latest
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./data/logs/nginx:/var/log/nginx/
# - /etc/nginx:/etc/nginx
# - /etc/letsencrypt:/etc/letsencrypt/
watchtower:
container_name: watchtower
image: containrrr/watchtower:latest
restart: always
environment:
- WATCHTOWER_CLEANUP=true
command: --interval 30
volumes:
- /var/run/docker.sock:/var/run/docker.sock
mem_limit: 512m
This file is used with the following commands to build, re-build, and remove the containers that run Monolith.
// Deploy Monolith
docker compose up -d
// Remove All Monolith Containers
docker compose down