elasticsearch,file-permissions,ddev,Docker,elasticsearch,File Permissions,Ddev" /> elasticsearch,file-permissions,ddev,Docker,elasticsearch,File Permissions,Ddev" />

Docker ddev和x2B的问题;elasticsearch最新版本

Docker ddev和x2B的问题;elasticsearch最新版本,docker,elasticsearch,file-permissions,ddev,Docker,elasticsearch,File Permissions,Ddev,我在尝试在DDEV上启动ES容器时遇到一些问题 我已下载并进行了一些更改(版本、最大节点等),如您所见: version: '3.6' services: elasticsearch: container_name: ddev-${DDEV_SITENAME}-elasticsearch hostname: ${DDEV_SITENAME}-elasticsearch image: elasticsearch:6.8.0 ports: - "920

我在尝试在DDEV上启动ES容器时遇到一些问题

我已下载并进行了一些更改(版本、最大节点等),如您所见:

version: '3.6'
services:
  elasticsearch:
    container_name: ddev-${DDEV_SITENAME}-elasticsearch
    hostname: ${DDEV_SITENAME}-elasticsearch
    image: elasticsearch:6.8.0
    ports:
      - "9200"
      - "9300"
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - VIRTUAL_HOST=$DDEV_HOSTNAME
      - HTTP_EXPOSE=9200
      - node.max_local_storage_nodes=20
    ulimits:
      memlock:
        soft: -1
        hard: -1
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.approot: $DDEV_APPROOT
    volumes:
      - elasticsearch:/usr/share/elasticsearch/data
      - ".:/mnt/ddev_config"
  web:
    links:
      - elasticsearch:elasticsearch

volumes:
  elasticsearch:
    name: "${DDEV_SITENAME}-elasticsearch"
因此,当我运行ddev start时,容器没有启动,因为我已经从5.6迁移到6.8.0

输出

OpenJDK 64位服务器VM警告:选项UseConcMarkSweepGC无效 在9.0版中已弃用,将来可能会被删除 释放。OpenJDK 64位服务器VM警告:不支持UseAVX=2 在此CPU上,将其设置为UseAVX=1[2020-03-04T17:32:31770][警告 ][o.e.b.ElasticsearchUncaughtExceptionHandler][未知]未捕获 线程[main]中出现异常 org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException:无法在创建节点环境 org.elasticsearch.bootstrap.elasticsearch.init(elasticsearch.java:163) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.elasticsearch.execute(elasticsearch.java:150) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.cli.environmentawerecommand.execute(environmentawerecommand.java:86) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.cli.Command.main不带外部错误处理(Command.java:124) ~[elasticsearch-cli-6.8.0.jar:6.8.0]at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.8.0.jar:6.8.0]at org.elasticsearch.bootstrap.elasticsearch.main(elasticsearch.java:116) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.elasticsearch.main(elasticsearch.java:93) ~[elasticsearch-6.8.0.jar:6.8.0]由以下原因引起: java.lang.IllegalStateException:无法在创建节点环境 org.elasticsearch.node.node.(node.java:299) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.node.node.(node.java:266) ~(elasticsearch-6.8.0.jar:6.8.0)at bootstrap$5.(bootstrap.java:212) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.bootstrap.setup(bootstrap.java:212) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.bootstrap.init(bootstrap.java:333) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.elasticsearch.init(elasticsearch.java:159) ~[elasticsearch-6.8.0.jar:6.8.0]。。。又有6宗由以下原因引致: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes/1 at sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) ~[?:?]at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) ~[?:?]at UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:389) ~[?:?]位于java.nio.file.Files.createDirectory(Files.java:692)~[?:?] 在java.nio.file.Files.createAndCheckIsDirectory(Files.java:799) ~[?:?]位于java.nio.file.Files.createDirectory(Files.java:785) ~[?:?]at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:273) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.env.NodeEnvironment$NodeLock(NodeEnvironment.java:206) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:270) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.node.node.(node.java:296) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.node.node.(node.java:266) ~(elasticsearch-6.8.0.jar:6.8.0)at bootstrap$5.(bootstrap.java:212) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.bootstrap.setup(bootstrap.java:212) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.bootstrap.init(bootstrap.java:333) ~(elasticsearch-6.8.0.jar:6.8.0)at org.elasticsearch.bootstrap.elasticsearch.init(elasticsearch.java:159) ~[elasticsearch-6.8.0.jar:6.8.0]


顺便说一句,我使用docker compose 3.6版,因为ddev最新版本强制您使用它

您将遇到此错误

.8.0.jar:6.8.0] ... 6 more Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes/1 at
这意味着您有一些权限问题,请检查文件的权限

    - elasticsearch:/usr/share/elasticsearch/data
      - ".:/mnt/ddev_config"

可能您还需要先重新创建或迁移数据,这不是Dockerfile。它是一个docker compose代码段,用于将自定义服务添加到DDEV Local。docker compose版本不是3.6,而是compose文件版本。我知道所有不同的版本都令人困惑。但以下是有关撰写文件版本的信息:-Dockerfile用于构建docker映像(完全不同的主题),请参见,您也可以从解释为什么需要使用elasticsearch 6.8开始。我将首先删除由此创建的docker卷,可能名为“ddev-_elasticsearch”
docker volume ls | grep elasticsearch
并使用
docker volume rm
将其删除。@rfay我正在将drupal与ES集成,我知道主要区别,这只是我在写问题时的一个打字错误