如何设置服务/容器来为 ddev 提供弹性搜索?我从https://ddev.readthedocs.io/en/latest/users/extend/additional-services/尝试了一些实验,但没有足够的 docker-compose 知识来为 elasticsearch 做一个。
问问题
872 次
2 回答
1
@thursdaybw 在https://github.com/drud/ddev/pull/1320中提供了这个配方,但它从未受到关注,也没有人审查它,所以它被移到这里以在社区中渗透和孵化。如果您使用它,请提供您的建议。
编辑 2019-09-30: https ://github.com/drud/ddev-contrib/tree/master/docker-compose-services/elasticsearch 中的 ddev-contrib 现在有一个 Elasticsearch 示例
设置附加服务的基本信息(和审查示例)位于https://ddev.readthedocs.io/en/latest/users/extend/additional-services/
version: '3.6'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- VIRTUAL_HOST=$DDEV_HOSTNAME # This defines the host name the service should be accessible from. This will be sitename.ddev.local
- HTTP_EXPOSE=9200
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200
labels:
# These labels ensure this service is discoverable by ddev
com.ddev.site-name: ${DDEV_SITENAME}
com.ddev.approot: $DDEV_APPROOT
volumes:
esdata1:
driver: local
于 2019-02-07T14:39:25.720 回答
0
对于启动单个节点,给定的示例并没有帮助我。在没有提供更多错误消息的情况下,容器再次停止。使用以下配置,我只能启动一个 ES 节点而不是集群(如上一个答案中给出的):
version: '3.6'
services:
elasticsearch:
container_name: ddev-${DDEV_SITENAME}-elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
environment:
- node.name=${DDEV_SITENAME}-es01
- discovery.type=single-node
- cluster.name=docker-${DDEV_SITENAME}-es-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
labels:
com.ddev.site-name: ${DDEV_SITENAME}
com.ddev.platform: ddev
com.ddev.app-type: elasticsearch
com.ddev.approot: $DDEV_APPROOT
web:
links:
- elasticsearch:elasticsearch
volumes:
esdata01:
driver: local
name: "${DDEV_SITENAME}-es"
此外,使用此配置,您可以使用主机名elasticsearch
从另一个容器中直接访问节点。
于 2019-07-12T15:01:32.663 回答