version: "3" services: gateway: volumes: - "/var/run/docker.sock:/var/run/docker.sock" ports: - 8080:8080 image: alexellis2/faas-gateway:latest-dev3 networks: - functions deploy: placement: constraints: [node.role == manager] prometheus: image: quay.io/prometheus/prometheus:latest 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 alertmanager: image: quay.io/prometheus/alertmanager environment: no_proxy: "gateway" volumes: - ./prometheus/alertmanager.yml:/alertmanager.yml command: - '-config.file=/alertmanager.yml' networks: - functions ports: - 9093:9093 # Sample functions go here. webhookstash: image: alexellis2/faas-webhookstash:latest depends_on: - gateway networks: - functions environment: no_proxy: "gateway" https_proxy: $https_proxy hubstats: image: alexellis2/faas-dockerhubstats:latest depends_on: - gateway networks: - functions environment: no_proxy: "gateway" https_proxy: $https_proxy nodeinfo: image: alexellis2/faas-nodeinfo:latest depends_on: - gateway networks: - functions environment: no_proxy: "gateway" https_proxy: $https_proxy echoit: image: alexellis2/faas-alpinefunction:latest depends_on: - gateway networks: - functions environment: fprocess: "cat" no_proxy: "gateway" https_proxy: $https_proxy wordcount: image: alexellis2/faas-alpinefunction:latest depends_on: - gateway networks: - functions environment: fprocess: "wc" no_proxy: "gateway" https_proxy: $https_proxy networks: functions: driver: overlay # Docker does not support this option yet - maybe create outside of the stack and reference as "external"? #attachable: true