2

如何设置服务/容器来为 ddev 提供弹性搜索?我从https://ddev.readthedocs.io/en/latest/users/extend/additional-services/尝试了一些实验,但没有足够的 docker-compose 知识来为 elasticsearch 做一个。

4

2 回答 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 回答