networks:
  edgex-network:
    driver: bridge
services:
  app-service-rules:
    container_name: edgex-app-rules-engine
    depends_on:
      consul:
        condition: service_started
      data:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_PROFILE: rules-engine
      EDGEX_SECURITY_SECRET_STORE: "false"
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-app-rules-engine
      TRIGGER_EDGEXMESSAGEBUS_PUBLISHHOST_HOST: edgex-redis
      TRIGGER_EDGEXMESSAGEBUS_SUBSCRIBEHOST_HOST: edgex-redis
    hostname: edgex-app-rules-engine
    image: nexus3.edgexfoundry.org:10004/app-service-configurable:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:59701:59701/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: 2002:2001
  command:
    container_name: edgex-core-command
    depends_on:
      consul:
        condition: service_started
      database:
        condition: service_started
      metadata:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-core-command
    hostname: edgex-core-command
    image: nexus3.edgexfoundry.org:10004/core-command:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:59882:59882/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: 2002:2001
  consul:
    container_name: edgex-core-consul
    hostname: edgex-core-consul
    image: consul:1.10
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:8500:8500/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: root:root
    volumes:
    - consul-config:/consul/config:z
    - consul-data:/consul/data:z
  data:
    container_name: edgex-core-data
    depends_on:
      consul:
        condition: service_started
      database:
        condition: service_started
      metadata:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      MESSAGEQUEUE_HOST: edgex-redis
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-core-data
    hostname: edgex-core-data
    image: nexus3.edgexfoundry.org:10004/core-data:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:5563:5563/tcp
    - 127.0.0.1:59880:59880/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: 2002:2001
  database:
    container_name: edgex-redis
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      REGISTRY_HOST: edgex-core-consul
    hostname: edgex-redis
    image: redis:6.2-alpine
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:6379:6379/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: root:root
    volumes:
    - db-data:/data:z
  device-snmp:
    container_name: edgex-device-snmp
    depends_on:
      consul:
        condition: service_started
      data:
        condition: service_started
      metadata:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      MESSAGEQUEUE_HOST: edgex-redis
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-device-snmp
    hostname: edgex-device-snmp
    image: nexus3.edgexfoundry.org:10004/device-snmp:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:59993:59993/tcp
    security_opt:
    - no-new-privileges:true
    user: 2002:2001
  metadata:
    container_name: edgex-core-metadata
    depends_on:
      consul:
        condition: service_started
      database:
        condition: service_started
      notifications:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      NOTIFICATIONS_SENDER: edgex-core-metadata
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-core-metadata
    hostname: edgex-core-metadata
    image: nexus3.edgexfoundry.org:10004/core-metadata:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:59881:59881/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: 2002:2001
  notifications:
    container_name: edgex-support-notifications
    depends_on:
      consul:
        condition: service_started
      database:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-support-notifications
    hostname: edgex-support-notifications
    image: nexus3.edgexfoundry.org:10004/support-notifications:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:59860:59860/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: 2002:2001
  rulesengine:
    container_name: edgex-kuiper
    depends_on:
      database:
        condition: service_started
    environment:
      EDGEX__DEFAULT__PORT: 6379
      EDGEX__DEFAULT__PROTOCOL: redis
      EDGEX__DEFAULT__SERVER: edgex-redis
      EDGEX__DEFAULT__TOPIC: rules-events
      EDGEX__DEFAULT__TYPE: redis
      KUIPER__BASIC__CONSOLELOG: "true"
      KUIPER__BASIC__RESTPORT: 59720
    hostname: edgex-kuiper
    image: lfedge/ekuiper:1.3.0-alpine
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:59720:59720/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: kuiper:kuiper
    volumes:
    - kuiper-data:/kuiper/data:z
  scheduler:
    container_name: edgex-support-scheduler
    depends_on:
      consul:
        condition: service_started
      database:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      INTERVALACTIONS_SCRUBAGED_HOST: edgex-core-data
      INTERVALACTIONS_SCRUBPUSHED_HOST: edgex-core-data
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-support-scheduler
    hostname: edgex-support-scheduler
    image: nexus3.edgexfoundry.org:10004/support-scheduler:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:59861:59861/tcp
    read_only: true
    security_opt:
    - no-new-privileges:true
    user: 2002:2001
  system:
    container_name: edgex-sys-mgmt-agent
    depends_on:
      command:
        condition: service_started
      consul:
        condition: service_started
      data:
        condition: service_started
      metadata:
        condition: service_started
      notifications:
        condition: service_started
      scheduler:
        condition: service_started
    environment:
      CLIENTS_CORE_COMMAND_HOST: edgex-core-command
      CLIENTS_CORE_DATA_HOST: edgex-core-data
      CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
      CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications
      CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler
      DATABASES_PRIMARY_HOST: edgex-redis
      EDGEX_SECURITY_SECRET_STORE: "false"
      EXECUTORPATH: /sys-mgmt-executor
      METRICSMECHANISM: executor
      REGISTRY_HOST: edgex-core-consul
      SERVICE_HOST: edgex-sys-mgmt-agent
    hostname: edgex-sys-mgmt-agent
    image: nexus3.edgexfoundry.org:10004/sys-mgmt-agent:latest
    networks:
      edgex-network: {}
    ports:
    - 127.0.0.1:58890:58890/tcp
    read_only: true
    security_opt:
    - label:disable
    - no-new-privileges:true
    user: root:root
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock:z
version: '3.7'
volumes:
  consul-config: {}
  consul-data: {}
  db-data: {}
  kuiper-data: {}

