如何设置服务/容器以为ddev提供elasticsearch?我已经尝试过https://ddev.readthedocs.io/en/latest/users/extend/additional-services/的一些实验,但是没有足够的docker-compose知识来为Elasticsearch做一个实验。
答案 0 :(得分:0)
@thursdaybw在https://github.com/drud/ddev/pull/1320中提供了此食谱,但它从未获得关注,也没有人评论它,因此它被移到这里以在社区中渗透和孵化。如果您使用它,请提供您的建议。
有关设置附加服务的基本信息(以及查看的示例),位于https://ddev.readthedocs.io/en/latest/users/extend/additional-services/
version: '3.6'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.5.1
container_name: ddev-${DDEV_SITENAME}-elasticsearch
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
com.ddev.app-url: $DDEV_URL
volumes:
esdata1:
driver: local
答案 1 :(得分: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
直接访问该节点。