【发布时间】:2020-06-25 13:10:09
【问题描述】:
我创建了一个 docker-compose 文件,它将启动 Kabana 和 ElasticSearch 容器。我已经在我的虚拟机中为这些创建了一个网络和卷。我正在使用 docker compose 3.4 版。
命令:docker volumes ls
DRIVER VOLUME NAME
local elasticsearch-data
local portainer_data
命令:docker volumes ls
NETWORK ID NAME DRIVER SCOPE
75464cd8c8ab bridge bridge local
587a311f6f4f host host local
649ac00b7f93 none null local
4b5923b1d144 stars.api.web bridge local
命令:docker-compose up -d
ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
in "./docker-compose.yml", line 33, column 27
docker-compose.yml
version: '3.4'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.0
container_name: elasticsearch
ports:
- "9200:9200"
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
networks:
- stars.api.web
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
ELASTIC_PASSWORD: changeme
discovery.type: single-node
ulimits:
memlock:
soft: -1
hard: -1
kibana:
image: docker.elastic.co/kibana/kibana:7.6.0
container_name: kibana
ports:
- "5601:5601"
depends_on:
- elasticsearch
networks:
- stars.api.web
volumes:
name: elasticsearch-data:
networks:
name: stars.api.web:
编辑:
从名称中删除 :,例如 name: elasticsearch-data 会引发以下错误:
ERROR: In file './docker-compose.yml', volume 'name' must be a mapping not a string.
【问题讨论】:
-
您是否尝试过从
name: elasticsearch-data:中删除第二个:?您还应该将卷声明为 externalexternal: true,因为您已经创建了它。 -
name: stars.api.web:相同。 -
@leopal 当我添加
external: true我得到volume 'external' must be a mapping not a boolean. -
只声明顶级条目怎么样?
volumes: my-data-volume-name:和服务 >db: image: db volumes: - my-data-volume-name:/var/lib/db
标签: docker docker-compose