Files
smart-city-digital-twin-mar…/docker-compose.iot-agent.yml
Eric FELIXINE 362a9d1f6b Architecture mise à jour (07 Mai 2026)
- Correction flux : Simulateur → MQTT Brokers → IoT Agents → Orion-LD/Stellio → QuantumLeap → CrateDB
- IoT Agents fonctionnels (EMQX:4041, Mosquitto:4042, BunkerM:4043)
- Pipeline Orion-LD validé (CrateDB: quantumleap.etairqualityobserved)
- BunkerM domaine corrigé : mosquitto2.digitribe.fr:1900
- Simulateur publie sur topics smartcity-api-key/{sid}/attrs
2026-05-06 21:26:21 -04:00

110 lines
3.2 KiB
YAML

# IoT Agent JSON - 3 instances (one per MQTT broker)
# Usage: docker compose -f docker-compose.yml -f docker-compose.iot-agent.yml up -d
version: '3.8'
services:
# Instance 1: EMQX
iot-agent-emqx:
image: fiware/iotagent-json:latest
container_name: smart-city-iot-agent-emqx
restart: unless-stopped
networks:
- smartcity-shared
- traefik-public
ports:
- "4041:4041"
environment:
# Context Broker (Orion-LD)
- IOTA_CB_HOST=smart-city-orion-ld
- IOTA_CB_PORT=1026
- IOTA_CB_NGSI_VERSION=v2
# IoT Agent settings
- IOTA_NORTH_PORT=4041
- IOTA_REGISTRY_TYPE=memory
# MQTT Listener - EMQX
- IOTA_MQTT_HOST=emqx_emqx_1
- IOTA_MQTT_PORT=1883
- IOTA_PROVIDER_URL=http://smart-city-iot-agent-emqx:4041
- IOTA_DEFAULT_RESOURCE=/
- IOTA_DEFAULT_APIKEY=smartcity-emqx
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:4041/version || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
labels:
- "traefik.enable=true"
- "traefik.http.routers.iot-agent-emqx.rule=Host(`iot-agent-emqx.digitribe.fr`)"
- "traefik.http.routers.iot-agent-emqx.entrypoints=websecure"
- "traefik.http.routers.iot-agent-emqx.tls=true"
- "traefik.http.services.iot-agent-emqx.loadbalancer.server.port=4041"
# Instance 2: Mosquitto
iot-agent-mosquitto:
image: fiware/iotagent-json:latest
container_name: smart-city-iot-agent-mosquitto
restart: unless-stopped
networks:
- smartcity-shared
ports:
- "4042:4042"
environment:
# Context Broker (Orion-LD)
- IOTA_CB_HOST=smart-city-orion-ld
- IOTA_CB_PORT=1026
- IOTA_CB_NGSI_VERSION=v2
# IoT Agent settings
- IOTA_NORTH_PORT=4042
- IOTA_REGISTRY_TYPE=memory
# MQTT Listener - Mosquitto
- IOTA_MQTT_HOST=mosquitto
- IOTA_MQTT_PORT=1883
- IOTA_PROVIDER_URL=http://smart-city-iot-agent-mosquitto:4042
- IOTA_DEFAULT_RESOURCE=/
- IOTA_DEFAULT_APIKEY=smartcity-mosquitto
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:4042/version || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
# Instance 3: BunkerM
iot-agent-bunkerm:
image: fiware/iotagent-json:latest
container_name: smart-city-iot-agent-bunkerm
restart: unless-stopped
networks:
- smartcity-shared
ports:
- "4043:4043"
environment:
# Context Broker (Orion-LD)
- IOTA_CB_HOST=smart-city-orion-ld
- IOTA_CB_PORT=1026
- IOTA_CB_NGSI_VERSION=v2
# IoT Agent settings
- IOTA_NORTH_PORT=4043
- IOTA_REGISTRY_TYPE=memory
# MQTT Listener - BunkerM
- IOTA_MQTT_HOST=bunkerm_bunkerm_1
- IOTA_MQTT_PORT=1900
- IOTA_MQTT_USERNAME=bunker
- IOTA_MQTT_PASSWORD=bunker
- IOTA_PROVIDER_URL=http://smart-city-iot-agent-bunkerm:4043
- IOTA_DEFAULT_RESOURCE=/
- IOTA_DEFAULT_APIKEY=smartcity-bunkerm
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:4043/version || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
networks:
smartcity-shared:
external: true
traefik-public:
external: true