services: mosquitto: image: dhi.io/eclipse-mosquitto:2.0.22 user: 2020:2020 # mosquitto:mosquitto restart: unless-stopped depends_on: init: condition: service_completed_successfully restart: true secrets: - password networks: - mosquitto_network ports: - 1883:1883 # MQTT (insecure/plaintext) - 9001:9001 # MQTT over WebSocket volumes: - ./config:/mosquitto/config:ro - data:/mosquitto/data:rw environment: TZ: UTC init: image: busybox:1.37.0 user: root:root command: /init.sh restart: no network_mode: none volumes: - ./init.sh:/init.sh:ro # Used for resolving user and group names within the init script - /etc/passwd:/etc/passwd:ro - /etc/group:/etc/group:ro # Mount all named volumes so they can be initialised - data:/data:rw networks: mosquitto_network: driver: bridge volumes: data: secrets: password: environment: PASSWORD