docker-compose.yml

Docker configuration and deployment file

File Example

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.

docker-compose.yml
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

Note: Indentation matters in this file - if the indentation is not set properly, you may see errors when trying to deploy Monolith.

How this file works

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

Last updated