【问题标题】:Specifying ELasticsearch's node.name in a docker-compose.yml在 docker-compose.yml 中指定 ELlasticsearch 的 node.name
【发布时间】:2016-02-29 16:41:18
【问题描述】:

官方Elasticsearch docker repository表示我可以通过一个标志/参数来设置节点名称:

$ docker run -d elasticsearch elasticsearch -Des.node.name="TestNode"

如何在我的docker-compose.yml 中指定这个?

【问题讨论】:

    标签: elasticsearch docker-compose dockerfile


    【解决方案1】:

    -Des.node.name="TestNode" 只是命令的一个参数,因此您可以将其指定为command 的一部分:

    command: "elasticsearch -Des.node.name=TestNode"
    

    您也可以使用entrypoint 作为命令的“基础”,并使用command 添加参数,如下所示:

    entrypoint: elasticsearch
    command: "-Des.node.name=TestNode"
    

    如果 Dockerfile 中已经设置了ENTRYPOINT,则可以完全省略。

    【讨论】:

    • 谢谢,但有没有我保留command 不变?我不想覆盖原始命令,以防他们出于任何原因决定更改它!我的意思是,如果我尝试做docker run,我可以在不更改命令的情况下给出参数,是否可以在这里做同样的事情?
    • 可以,但您需要指定自己的配置文件。请查看我们的 docker 镜像 million12/elasticsearch 值得一提的是,我们的镜像就像一个弹性搜索命令。所以无论你想在运行过程中指定什么,而不是使用配置文件,你都可以
    • 我已在答案中添加了有关 entrypoint 的更多信息,这符合您的建议。
    【解决方案2】:

    您可以将其添加到docker-compose.yml 文件的environment 部分,如下所示:

    version: '2'
    services:
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:5.3.1
        container_name: elasticsearch
        environment:
          - node.name=<your-node-name-here>
    

    【讨论】:

      【解决方案3】:
      environment:
            node.name: your-node-name-here
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-19
        • 1970-01-01
        • 2019-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多