version: "3.7"

x-logging: &default-logging
  driver: json-file
  options:
    max-size: "10m"
    max-file: "3"

services:

  clamav:
    image: clamav/clamav:stable_base
    container_name: clamav
    restart: on-failure
    logging: *default-logging
    volumes:
      - ./docker/data/clamav/clamav/defs:/var/lib/clamav
      - ./docker/clamav/clamd.conf:/etc/clamav/clamd.conf:ro
    expose:
      - 3310 # NEVER expose this outside of the local network!
    deploy:
      resources:
        limits:
          cpus: '${CLAMAV_CPU:-0.50}'
    networks:
      shared:
        ipv4_address: 10.10.10.100

  malware-scanner:
    build:
      context: ./docker/malware-scanner
      dockerfile: Dockerfile
      args:
        branch: main
    container_name: malware-scanner
    restart: unless-stopped
    logging: *default-logging
    env_file:
      - .env
    environment:
      - CLAMAV_IP=${CLAMAV_IP:-10.10.10.100}
      - CLAMAV_PORT=${CLAMAV_PORT:-3310}
      - BLOCKER_IP=${BLOCKER_IP:-10.10.10.110}
      - BLOCKER_PORT=${BLOCKER_PORT:-4000}
    expose:
      - 4000
    networks:
      shared:
        ipv4_address: 10.10.10.101
    depends_on:
      - mongo
      - clamav
      - blocker
