mirror of
https://github.com/openfaas/faas.git
synced 2025-06-18 20:16:37 +00:00
Update the ARM64 docker compose file
Signed-off-by: Radoslav Dimitrov <dimitrovr@vmware.com>
This commit is contained in:
committed by
Alex Ellis
parent
bfa869ec8c
commit
e683feabe0
@ -1,29 +1,136 @@
|
|||||||
version: "3.2"
|
version: "3.3"
|
||||||
services:
|
services:
|
||||||
gateway:
|
gateway:
|
||||||
volumes:
|
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
||||||
ports:
|
ports:
|
||||||
- 8080:8080
|
- 8080:8080
|
||||||
image: functions/gateway:0.7.0-arm64
|
image: openfaas/gateway:0.9.11-arm64
|
||||||
networks:
|
networks:
|
||||||
- functions
|
- functions
|
||||||
environment:
|
environment:
|
||||||
read_timeout: 10 # set both here, and on your functions
|
functions_provider_url: "http://faas-swarm:8080/"
|
||||||
write_timeout: 10 # set both here, and on your functions
|
read_timeout: "305s" # Maximum time to read HTTP request
|
||||||
dnsrr: "true" # Temporarily use dnsrr in place of VIP while issue persists on PWD
|
write_timeout: "305s" # Maximum time to write HTTP response
|
||||||
|
upstream_timeout: "300s" # Maximum duration of upstream function call - should be more than read_timeout and write_timeout dnsrr: "true" # Temporarily use dnsrr in place of VIP while issue persists on PWD
|
||||||
|
faas_nats_address: "nats"
|
||||||
|
faas_nats_port: 4222
|
||||||
|
direct_functions: "true" # Functions are invoked directly over the overlay network
|
||||||
|
direct_functions_suffix: ""
|
||||||
|
basic_auth: "${BASIC_AUTH:-true}"
|
||||||
|
secret_mount_path: "/run/secrets/"
|
||||||
|
scale_from_zero: "true"
|
||||||
|
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'
|
||||||
|
secrets:
|
||||||
|
- basic-auth-user
|
||||||
|
- basic-auth-password
|
||||||
|
|
||||||
|
|
||||||
|
# Docker Swarm provider
|
||||||
|
faas-swarm:
|
||||||
|
image: openfaas/faas-swarm:0.6.1-arm64 # TODO: Provide ARM64 image
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
networks:
|
||||||
|
- functions
|
||||||
|
environment:
|
||||||
|
read_timeout: "305s" # set both here, and on your functions
|
||||||
|
write_timeout: "305s" # set both here, and on your functions
|
||||||
|
DOCKER_API_VERSION: "1.30"
|
||||||
|
basic_auth: "${BASIC_AUTH:-true}"
|
||||||
|
secret_mount_path: "/run/secrets/"
|
||||||
deploy:
|
deploy:
|
||||||
placement:
|
placement:
|
||||||
constraints:
|
constraints:
|
||||||
- 'node.role == manager'
|
- 'node.role == manager'
|
||||||
- 'node.platform.os == linux'
|
- '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
|
||||||
|
secrets:
|
||||||
|
- basic-auth-user
|
||||||
|
- basic-auth-password
|
||||||
|
|
||||||
|
|
||||||
|
nats:
|
||||||
|
image: nats-streaming:0.11.2
|
||||||
|
# Uncomment the following port mappings if you wish to expose the
|
||||||
|
# NATS client and/or management ports you must also add `-m 8222` to the command
|
||||||
|
# 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: openfaas/queue-worker:0.5.5-arm64 # TODO: Provide ARM64 image
|
||||||
|
networks:
|
||||||
|
- functions
|
||||||
|
environment:
|
||||||
|
max_inflight: "1"
|
||||||
|
ack_wait: "30s" # Max duration of any async task / request
|
||||||
|
basic_auth: "false"
|
||||||
|
secret_mount_path: "/run/secrets/"
|
||||||
|
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:
|
prometheus:
|
||||||
image: alexellis2/prometheus:1.5.2-arm64
|
image: alexellis2/prometheus:2.3.1-arm64
|
||||||
command: "-config.file=/etc/prometheus/prometheus.yml -storage.local.path=/prometheus -storage.local.memory-chunks=10000 --alertmanager.url=http://alertmanager:9093"
|
|
||||||
ports:
|
|
||||||
- 9090:9090
|
|
||||||
environment:
|
environment:
|
||||||
no_proxy: "gateway"
|
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:
|
networks:
|
||||||
- functions
|
- functions
|
||||||
deploy:
|
deploy:
|
||||||
@ -31,9 +138,57 @@ services:
|
|||||||
constraints:
|
constraints:
|
||||||
- 'node.role == manager'
|
- 'node.role == manager'
|
||||||
- 'node.platform.os == linux'
|
- 'node.platform.os == linux'
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 500M
|
||||||
|
reservations:
|
||||||
|
memory: 200M
|
||||||
|
|
||||||
|
alertmanager:
|
||||||
|
image: alexellis2/alertmanager-armhf:0.5.1 # TODO: Provide ARM64 image
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
configs:
|
||||||
|
prometheus_config:
|
||||||
|
file: ./prometheus/prometheus.yml
|
||||||
|
prometheus_rules:
|
||||||
|
file: ./prometheus/alert.rules.yml
|
||||||
|
alertmanager_config:
|
||||||
|
file: ./prometheus/alertmanager.yml
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
functions:
|
functions:
|
||||||
driver: overlay
|
driver: overlay
|
||||||
# Docker does not support this option yet - maybe create outside of the stack and reference as "external"?
|
attachable: true
|
||||||
#attachable: true
|
labels:
|
||||||
|
- "openfaas=true"
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
basic-auth-user:
|
||||||
|
external: true
|
||||||
|
basic-auth-password:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user