services: #/* ----------------------------- Message Broker ----------------------------- */ msg_broker: image: 'nats:latest' container_name: nats ports: - 4222:4222 - 8222:8222 command: -n oktopus -m 8222 -js networks: usp_network: ipv4_address: 172.16.235.2 profiles: [nats] #/* -------------------------------------------------------------------------- */ #/* ------------------------ API REST / USP Controller ----------------------- */ controller: image: 'oktopusp/controller' container_name: controlller ports: - 8000:8000 depends_on: - mongo_usp env_file: - .env.controller networks: usp_network: ipv4_address: 172.16.235.3 profiles: [controller] #/* -------------------------------------------------------------------------- */ #/* ---------------------------- Databases / Cache --------------------------- */ mongo_usp: image: mongo container_name: mongo_usp ports: - 27017:27017 networks: usp_network: ipv4_address: 172.16.235.4 volumes: - ./mongo_data:/data/db profiles: [controller,adapter] #/* -------------------------------------------------------------------------- */ #/* ----------------------- Message Transfer Protocols ----------------------- */ mqtt: image: 'oktopusp/mqtt' container_name: mqtt ports: - 1883:1883 - 8883:8883 env_file: - .env.mqtt networks: usp_network: ipv4_address: 172.16.235.6 profiles: [mqtt] ws: image: 'oktopusp/ws' container_name: websockets ports: - 8080:8080 networks: usp_network: ipv4_address: 172.16.235.7 profiles: [ws] stomp: image: 'oktopusp/stomp' container_name: stomp ports: - 61613:61613 networks: usp_network: ipv4_address: 172.16.235.8 profiles: [stomp] #/* -------------------------------------------------------------------------- */ #/* --------------- Message transfer Protocols Adapters to NATS -------------- */ mqtt-adapter: image: 'oktopusp/mqtt-adapter' container_name: mqtt-adapter depends_on: - mqtt env_file: - .env.mqtt-adapter networks: usp_network: ipv4_address: 172.16.235.9 profiles: [mqtt] ws-adapter: image: 'oktopusp/ws-adapter' container_name: ws-adapter depends_on: - ws env_file: - .env.ws-adapter networks: usp_network: ipv4_address: 172.16.235.10 profiles: [ws] stomp-adapter: image: 'oktopusp/stomp-adapter' container_name: stomp-adapter depends_on: - stomp env_file: - .env.stomp-adapter networks: usp_network: ipv4_address: 172.16.235.11 profiles: [stomp] adapter: image: 'oktopusp/adapter' container_name: adapter depends_on: - mongo_usp env_file: - .env.adapter networks: usp_network: ipv4_address: 172.16.235.12 profiles: [adapter] #/* -------------------------------------------------------------------------- */ #/* ------------- SocketIO Real Time Communication With Frontend ------------- */ socketio: image: 'oktopusp/socketio' container_name: socketio ports: - 5000:5000 env_file: - .env.socketio networks: usp_network: ipv4_address: 172.16.235.13 profiles: [frontend] #/* -------------------------------------------------------------------------- */ #/* -------------------------------- Frontend -------------------------------- */ frontend: image: 'oktopusp/frontend' container_name: frontend env_file: - .env.frontend ports: - 3000:3000 networks: usp_network: ipv4_address: 172.16.235.14 profiles: [frontend] #/* -------------------------------------------------------------------------- */ portainer: image: portainer/portainer-ce:latest container_name: portainer ports: - 9443:9443 networks: usp_network: ipv4_address: 172.16.235.15 profiles: [portainer] volumes: - /var/run/docker.sock:/var/run/docker.sock - ./portainer_data:/data networks: usp_network: driver: bridge ipam: driver: default config: - subnet: 172.16.235.0/24 gateway: 172.16.235.1