【发布时间】: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
官方Elasticsearch docker repository表示我可以通过一个标志/参数来设置节点名称:
$ docker run -d elasticsearch elasticsearch -Des.node.name="TestNode"
如何在我的docker-compose.yml 中指定这个?
【问题讨论】:
标签: elasticsearch docker-compose dockerfile
-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,我可以在不更改命令的情况下给出参数,是否可以在这里做同样的事情?
entrypoint 的更多信息,这符合您的建议。
您可以将其添加到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>
【讨论】:
environment:
node.name: your-node-name-here
【讨论】: