mirror of
https://github.com/openfaas/faas.git
synced 2025-06-08 16:26:47 +00:00
153 lines
4.3 KiB
YAML
153 lines
4.3 KiB
YAML
version: "3.2"
|
|
services:
|
|
gateway:
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
ports:
|
|
- 8080:8080
|
|
image: functions/gateway:0.6.3
|
|
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.5.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: functions/queue-worker:0.1.1
|
|
networks:
|
|
- functions
|
|
deploy:
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 20
|
|
window: 380s
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
# End
|
|
|
|
prometheus:
|
|
image: functions/prometheus:latest # autobuild from Dockerfile in repo.
|
|
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'
|
|
- 'node.platform.os == linux'
|
|
|
|
alertmanager:
|
|
image: functions/alertmanager:latest # autobuild from Dockerfile in repo.
|
|
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'
|
|
- 'node.platform.os == linux'
|
|
|
|
# Sample functions go here.
|
|
|
|
# Pass a username as an argument to find how many images user has pushed to Docker Hub.
|
|
hubstats:
|
|
image: alexellis2/faas-dockerhubstats:latest
|
|
labels:
|
|
function: "true"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
no_proxy: "gateway"
|
|
https_proxy: $https_proxy
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
# Node.js gives OS info about the node (Host)
|
|
nodeinfo:
|
|
image: functions/nodeinfo:latest
|
|
labels:
|
|
function: "true"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
no_proxy: "gateway"
|
|
https_proxy: $https_proxy
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
# Uses `cat` to echo back response, fastest function to execute.
|
|
echoit:
|
|
image: functions/alpine:health
|
|
labels:
|
|
function: "true"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
fprocess: "cat"
|
|
no_proxy: "gateway"
|
|
https_proxy: $https_proxy
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
networks:
|
|
functions:
|
|
driver: overlay
|
|
# Docker does not support this option yet - maybe create outside of the stack and reference as "external"?
|
|
#attachable: true
|