Ошибка при развертывании роя (Неподдерживаемая версия составного файла:3.3)
Я пытаюсь развернуть стек, используя файл docker-compose, предоставленный OpenFaas ( https://github.com/openfaas/faas), который выдает Unsupported compose file version:3.3. Ниже приведен файл docker compose, который я пытаюсь выполнить
version: "3.3"
services:
gateway:
ports:
- 8080:8080
image: functions/gateway:0.7.7
networks:
- functions
environment:
functions_provider_url: "http://faas-swarm:8080/"
read_timeout: "25s" # Maximum time to read HTTP request
write_timeout: "25s" # Maximum time to write HTTP response
upstream_timeout: "20s" # 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: ""
deploy:
resources:
# limits: # Enable if you want to limit memory usage
# memory: 200M
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.2
networks:
- functions
environment:
read_timeout: "20s" # set both here, and on your functions
write_timeout: "20s" # set both here, and on your functions
DOCKER_API_VERSION: "1.30"
deploy:
placement:
constraints:
- 'node.role == manager'
- 'node.platform.os == linux'
resources:
# limits: # Enable if you want to limit memory usage
# 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
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: prom/prometheus:v2.2.0
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: prom/alertmanager:v0.15.0-rc.0
environment:
no_proxy: "gateway"
command:
- '--config.file=/alertmanager.yml'
- '--storage.path=/alertmanager'
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.
# 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"
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"
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:latest
labels:
function: "true"
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:latest
labels:
function: "true"
com.faas.max_replicas: "10"
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:latest
labels:
function: "true"
networks:
- functions
environment:
fprocess: "base64"
no_proxy: "gateway"
https_proxy: $https_proxy
deploy:
placement:
constraints:
- 'node.platform.os == linux'
# Converts body in (markdown format) -> (html)
markdown:
image: functions/markdown-render:latest
labels:
function: "true"
networks:
- functions
environment:
no_proxy: "gateway"
https_proxy: $https_proxy
deploy:
placement:
constraints:
- 'node.platform.os == linux'
конфиги: prometheus_config: файл: ./prometheus/prometheus.yml prometheus_rules: файл: ./prometheus/alert.rules.yml alertmanager_config: файл:./prometheus/alertmanager.yml
сети: функции: драйвер: добавляемый оверлей: метки true: - "openfaas=true"