mirror of
https://github.com/openfaas/faas.git
synced 2025-06-08 16:26:47 +00:00
206 lines
5.6 KiB
YAML
206 lines
5.6 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
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.role == manager'
|
|
- 'node.platform.os == linux'
|
|
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.
|
|
|
|
# Service label of "function" allows functions to show up in UI on http://gateway:8080/
|
|
webhookstash:
|
|
image: functions/webhookstash:latest
|
|
labels:
|
|
function: "true"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
no_proxy: "gateway"
|
|
https_proxy: $https_proxy
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
# Pass a username as an argument to find how many images user has pushed to Docker Hub.
|
|
hubstats:
|
|
image: functions/hubstats: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'
|
|
|
|
|
|
# Counts words in request with `wc` utility
|
|
wordcount:
|
|
image: functions/alpine:health
|
|
labels:
|
|
function: "true"
|
|
com.faas.max_replicas: "10"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
fprocess: "wc"
|
|
no_proxy: "gateway"
|
|
https_proxy: $https_proxy
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
|
|
# Calculates base64 representation of request body.
|
|
base64:
|
|
image: functions/alpine:health
|
|
labels:
|
|
function: "true"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
fprocess: "base64"
|
|
no_proxy: "gateway"
|
|
https_proxy: $https_proxy
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
|
|
# Decodes base64 representation of request body.
|
|
decodebase64:
|
|
image: functions/alpine:health
|
|
labels:
|
|
function: "true"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
fprocess: "base64 -d"
|
|
no_proxy: "gateway"
|
|
https_proxy: $https_proxy
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- 'node.platform.os == linux'
|
|
|
|
# Converts body in (markdown format) -> (html)
|
|
markdown:
|
|
image: alexellis2/faas-markdownrender:latest
|
|
labels:
|
|
function: "true"
|
|
depends_on:
|
|
- gateway
|
|
networks:
|
|
- functions
|
|
environment:
|
|
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
|