version: "3.2" services: gateway: volumes: - "/var/run/docker.sock:/var/run/docker.sock" ports: - 8080:8080 image: functions/gateway:0.6.7-armhf networks: - functions environment: dnsrr: "true" # Temporarily use dnsrr in place of VIP while issue persists on PWD faas_nats_address: "nats" faas_nats_port: 4222 # Start Add for NATS Streaming depends_on: - nats deploy: restart_policy: condition: on-failure delay: 5s max_attempts: 20 window: 380s placement: constraints: - 'node.role == manager' - 'node.platform.os == linux' nats: image: nats-streaming:0.6.0 ports: - 4222:4222 - 8222:8222 command: "--store memory --cluster_id faas-cluster" networks: - functions deploy: placement: constraints: - 'node.platform.os == linux' queue-worker: image: alexellis2/nats-queue-worker:0.1-armhf networks: - functions deploy: restart_policy: condition: on-failure delay: 5s max_attempts: 20 window: 380s placement: constraints: - 'node.platform.os == linux' prometheus: image: alexellis2/prometheus-armhf:1.5.2 volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml - ./prometheus/alert.rules:/etc/prometheus/alert.rules command: "-config.file=/etc/prometheus/prometheus.yml -storage.local.path=/prometheus -storage.local.memory-chunks=10000 --alertmanager.url=http://alertmanager:9093" ports: - 9090:9090 depends_on: - gateway - alertmanager environment: no_proxy: "gateway" networks: - functions deploy: placement: constraints: [node.role == manager] alertmanager: image: alexellis2/alertmanager-armhf:0.5.1 environment: no_proxy: "gateway" volumes: - ./prometheus/alertmanager.yml:/alertmanager.yml command: - '-config.file=/alertmanager.yml' networks: - functions ports: - 9093:9093 deploy: placement: constraints: [node.role == manager] # sample functions go here, but can be created in the UI too. nodeinfo: image: functions/nodeinfo:latest-armhf labels: function: "true" depends_on: - gateway networks: - functions environment: no_proxy: "gateway" https_proxy: $https_proxy networks: functions: driver: overlay #attachable: true