如何在Docker容器中简单编辑elasticsearch.yml文件?

10

我正在使用docker-compose,如https://github.com/davidefiocco/dockerized-elasticsearch-indexer/blob/master/docker-compose.yml中所示,初始化一个容器化的 Elasticsearch 索引。
现在,我想使用elasticsearch.yml配置文件将indices.query.bool.max_clause_count的值设置为比默认设置更大的值(这是为了运行一些重查询,例如:Elasticsearch - set max_clause_count)。

到目前为止,我尝试在docker-compose.yml中添加卷:

services:
   elasticsearch:
      volumes:
        - ./elasticsearch/config/elasticsearch.yml

有人试图指向一个elasticsearch.yml文件(我希望将其与其他文件一起发送),并且设置正确的max_clause_count,但没有成功。

有人能指引我正确的方向吗?


2
卷有两个部分:本地目录和容器目录。您正在尝试将相对路径挂载到未指定的卷中的文件;不确定您希望Docker在那里执行什么操作。您可能需要阅读Docker、Docker Compose的文档以及官方Elasticsearch Docker容器的自述文件,这些应该能够很好地解释这个问题。 - Jilles van Gurp
2个回答

9
您可以使用以下命令将宿主机包含elasticsearch.yml的目录挂载到容器中:
services:
   elasticsearch:
      volumes:
        - path_to/custom_elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro

这如何应用于Windows 10?路径和所有相关内容。 - chomp
@chomp ':' 左侧是 yml 文件路径的相对位置。右侧应保持不变。 - Shoan
1
那个结尾的 :ro 是打错了吗? - Noumenon
1
当我写这个答案的时候,那不是一个打字错误。末尾的 :ro 允许将路径挂载为只读。 - Shoan

7

对于在容器中进行(琐碎的)elasticsearch.yml修改的解决方法之一是直接使用以下语法修改相关的Dockerfile:

USER root
RUN echo "indices.query.bool.max_clause_count: 1000000" >> /usr/share/elasticsearch/config/elasticsearch.yml

为了添加所需的自定义值,请执行以下操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接