Docker composer, constraint - 没有找到预期的密钥
Docker composer, constraint - did not find expected key
我们使用 docker CE(最新)和 docker composer 版本 3.I 有一个 .yml 用于 3 个服务,但我想将 grafana 限制为 swarm 的主人。
添加约束时,我得到
yaml: line 32: did not find expected key
Tthe script is this:
version: '3'
services:
influxdb:
image: "influxdb:latest"
volumes:
- /mount/set/influxdb:/var/lib/influxdb
ports:
- "5076:5076"
networks:
- production
kapacitor:
image: "kapacitor:latest"
environment:
KAPACITOR_HOSTNAME: kapacitor
KAPACITOR_INFLUXDB_0_URLS_0: http://influxdb:5086
volumes:
- /mount/set/kapacitor:/var/lib/kapacitor
ports:
- "9092:9092"
networks:
- production
grafana:
image: "grafana/grafana:latest"
ports:
- "7000:7000"
networks:
- production
deploy:
placement:
constraints: [node.role == manager]
volumes:
- /iSCSIDisk/grafana/grafana.ini:/etc/grafana/grafana.ini
- /iSCSIDisk/grafana/lib:/var/lib/grafana
environment:
GF_SECURITY_ADMIN_PASSWORD: secretsecret
networks:
production:
external: true
我多次梳理脚本,找不到任何错误原因,我可能忽略了一些东西,我检查了非空格等,但找不到任何东西,我检查了其他关于相同错误的文章,而且我似乎也没有任何遗漏的括号或重复项。非常感谢您的帮助,谢谢。 :)
您在 grafana 部分的缩进有误。 image
之后的所有内容都用两个额外的空格隔开。
docker-compose.yml 文件依赖于额外空格是常见错误。
如果您使用 vi 或 vim,您可以使用 :%s/\s\+$//e
命令删除所有多余的空格。
如果您对环境变量使用字典类型声明,就会发生这种情况。
就我而言,我不得不更改格式
environment:
DATASTORE_EMULATOR_HOST: "${DATASTORE_ENDPOINT}:${DATASTORE_PORT}"
至
environment:
- DATASTORE_EMULATOR_HOST=${DATASTORE_ENDPOINT}:${DATASTORE_PORT}
对我来说唯一改变的是升级我的 docker 桌面安装
我们使用 docker CE(最新)和 docker composer 版本 3.I 有一个 .yml 用于 3 个服务,但我想将 grafana 限制为 swarm 的主人。 添加约束时,我得到
yaml: line 32: did not find expected key Tthe script is this:
version: '3'
services:
influxdb:
image: "influxdb:latest"
volumes:
- /mount/set/influxdb:/var/lib/influxdb
ports:
- "5076:5076"
networks:
- production
kapacitor:
image: "kapacitor:latest"
environment:
KAPACITOR_HOSTNAME: kapacitor
KAPACITOR_INFLUXDB_0_URLS_0: http://influxdb:5086
volumes:
- /mount/set/kapacitor:/var/lib/kapacitor
ports:
- "9092:9092"
networks:
- production
grafana:
image: "grafana/grafana:latest"
ports:
- "7000:7000"
networks:
- production
deploy:
placement:
constraints: [node.role == manager]
volumes:
- /iSCSIDisk/grafana/grafana.ini:/etc/grafana/grafana.ini
- /iSCSIDisk/grafana/lib:/var/lib/grafana
environment:
GF_SECURITY_ADMIN_PASSWORD: secretsecret
networks:
production:
external: true
我多次梳理脚本,找不到任何错误原因,我可能忽略了一些东西,我检查了非空格等,但找不到任何东西,我检查了其他关于相同错误的文章,而且我似乎也没有任何遗漏的括号或重复项。非常感谢您的帮助,谢谢。 :)
您在 grafana 部分的缩进有误。 image
之后的所有内容都用两个额外的空格隔开。
docker-compose.yml 文件依赖于额外空格是常见错误。
如果您使用 vi 或 vim,您可以使用 :%s/\s\+$//e
命令删除所有多余的空格。
如果您对环境变量使用字典类型声明,就会发生这种情况。
就我而言,我不得不更改格式
environment:
DATASTORE_EMULATOR_HOST: "${DATASTORE_ENDPOINT}:${DATASTORE_PORT}"
至
environment:
- DATASTORE_EMULATOR_HOST=${DATASTORE_ENDPOINT}:${DATASTORE_PORT}
对我来说唯一改变的是升级我的 docker 桌面安装