mirror of
https://github.com/openfaas/faas.git
synced 2025-06-09 16:56:47 +00:00
212 lines
6.1 KiB
YAML
212 lines
6.1 KiB
YAML
version: "3.3"
|
||
services:
|
||
gateway:
|
||
ports:
|
||
- 8080:8080
|
||
image: functions/gateway:0.7.3-armhf
|
||
networks:
|
||
- functions
|
||
environment:
|
||
functions_provider_url: "http://faas-swarm:8080/"
|
||
read_timeout: 10 # set both here, and on your functions
|
||
write_timeout: 10 # set both here, and on your functions
|
||
dnsrr: "true" # Temporarily use dnsrr in place of VIP while issue persists on PWD
|
||
faas_nats_address: "nats"
|
||
faas_nats_port: 4222
|
||
deploy:
|
||
resources:
|
||
# limits: # uncomment to enable limits
|
||
# memory: 100M
|
||
reservations:
|
||
memory: 100M
|
||
restart_policy:
|
||
condition: on-failure
|
||
delay: 5s
|
||
max_attempts: 20
|
||
window: 380s
|
||
placement:
|
||
constraints:
|
||
- 'node.platform.os == linux'
|
||
|
||
# Docker Swarm provider
|
||
faas-swarm:
|
||
volumes:
|
||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||
# ports:
|
||
# - 8081:8080
|
||
image: functions/faas-swarm:0.2.1-armhf
|
||
networks:
|
||
- functions
|
||
environment:
|
||
read_timeout: 10 # set both here, and on your functions
|
||
write_timeout: 10 # set both here, and on your functions
|
||
DOCKER_API_VERSION: "1.30"
|
||
deploy:
|
||
placement:
|
||
constraints:
|
||
- 'node.role == manager'
|
||
- 'node.platform.os == linux'
|
||
resources:
|
||
# limits: # uncomment to enable limits
|
||
# memory: 100M
|
||
reservations:
|
||
memory: 100M
|
||
restart_policy:
|
||
condition: on-failure
|
||
delay: 5s
|
||
max_attempts: 20
|
||
window: 380s
|
||
|
||
nats:
|
||
image: nats-streaming:0.6.0
|
||
# Uncomment the following port mappings if you wish to expose the
|
||
# NATS client and/or management ports
|
||
# ports:
|
||
# - 4222:4222
|
||
# - 8222:8222
|
||
command: "--store memory --cluster_id faas-cluster"
|
||
networks:
|
||
- functions
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
memory: 125M
|
||
reservations:
|
||
memory: 50M
|
||
placement:
|
||
constraints:
|
||
- 'node.platform.os == linux'
|
||
|
||
queue-worker:
|
||
image: functions/queue-worker:0.4-armhf
|
||
networks:
|
||
- functions
|
||
environment:
|
||
max_inflight: "1"
|
||
ack_timeout: "30s" # Max duration of any async task / request
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
memory: 50M
|
||
reservations:
|
||
memory: 20M
|
||
restart_policy:
|
||
condition: on-failure
|
||
delay: 5s
|
||
max_attempts: 20
|
||
window: 380s
|
||
placement:
|
||
constraints:
|
||
- 'node.platform.os == linux'
|
||
# End services
|
||
|
||
# Start monitoring
|
||
|
||
prometheus:
|
||
image: alexellis2/prometheus:2.0-armhf
|
||
environment:
|
||
no_proxy: "gateway"
|
||
configs:
|
||
- source: prometheus_config
|
||
target: /etc/prometheus/prometheus.yml
|
||
- source: prometheus_rules
|
||
target: /etc/prometheus/alert.rules.yml
|
||
command:
|
||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||
# - '-storage.local.path=/prometheus'
|
||
ports:
|
||
- 9090:9090
|
||
networks:
|
||
- functions
|
||
deploy:
|
||
placement:
|
||
constraints:
|
||
- 'node.role == manager'
|
||
- 'node.platform.os == linux'
|
||
resources:
|
||
limits:
|
||
memory: 500M
|
||
reservations:
|
||
memory: 200M
|
||
|
||
alertmanager:
|
||
image: alexellis2/alertmanager-armhf:0.5.1
|
||
environment:
|
||
no_proxy: "gateway"
|
||
command:
|
||
- '-config.file=/alertmanager.yml'
|
||
networks:
|
||
- functions
|
||
# Uncomment the following port mapping if you wish to expose the Prometheus
|
||
# Alertmanager UI.
|
||
# ports:
|
||
# - 9093:9093
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
memory: 50M
|
||
reservations:
|
||
memory: 20M
|
||
placement:
|
||
constraints:
|
||
- 'node.role == manager'
|
||
- 'node.platform.os == linux'
|
||
configs:
|
||
- source: alertmanager_config
|
||
target: /alertmanager.yml
|
||
|
||
# sample functions go here, but can be created in the UI too.
|
||
nodeinfo:
|
||
image: functions/nodeinfo:latest-armhf
|
||
labels:
|
||
function: "true"
|
||
networks:
|
||
- functions
|
||
environment:
|
||
no_proxy: "gateway"
|
||
https_proxy: $https_proxy
|
||
|
||
markdown:
|
||
image: functions/markdownrender:latest-armhf
|
||
labels:
|
||
function: "true"
|
||
networks:
|
||
- functions
|
||
environment:
|
||
no_proxy: "gateway"
|
||
https_proxy: $https_proxy
|
||
wordcount:
|
||
image: functions/alpine:latest-armhf
|
||
labels:
|
||
function: "true"
|
||
networks:
|
||
- functions
|
||
environment:
|
||
fprocess: "wc"
|
||
no_proxy: "gateway"
|
||
https_proxy: $https_proxy
|
||
echoit:
|
||
image: functions/alpine:latest-armhf
|
||
labels:
|
||
function: "true"
|
||
networks:
|
||
- functions
|
||
environment:
|
||
fprocess: "cat"
|
||
no_proxy: "gateway"
|
||
https_proxy: $https_proxy
|
||
|
||
configs:
|
||
prometheus_config:
|
||
file: ./prometheus/prometheus.yml
|
||
prometheus_rules:
|
||
file: ./prometheus/alert.rules.yml
|
||
alertmanager_config:
|
||
file: ./prometheus/alertmanager.yml
|
||
|
||
networks:
|
||
functions:
|
||
driver: overlay
|
||
attachable: true
|
||
labels:
|
||
- "openfaas=true" |