从Ansible或Fig。的Docker运行中传递参数(如-Des.node.name =“TestNode”)
我需要使用dockerhub官方镜像中的dockerized Elasticsearch并使用Fig或Ansible启动Docker容器。 两者都可以select传递标准的docker run命令参数,如端口,卷等,但我找不到像-Des.node.name="TestNode"
这样的参数来configurationElasticsearch集群名称等的方法。
我不能修改Dockerfile来修改configuration,因为它们是运行时configuration,在安装时不同,因此需要在运行时通过。
有没有人有任何想法如何使用无花果或Ansible通过这样的参数。
无花果已经被docker compose
取代了相当长一段时间了。
而传递这样的参数的方式是:
- 使用运行时环境variables ,这些variables在
docker compose up
之后将被容器运行可见, - 在
CMD
有一个起始脚本,它将预期并使用这些环境variables,以便构build启动ElsticSearch的正确命令(使用-Dxxx=yyy
)
由于-D特定于Java(JAVA_OPTS)而不是ENV或docker params,因此可以使用JAVA_OPTS环境variables传递。 喜欢:
sudo docker run -e JAVA_OPTS = -Des.script.groovy.sandbox.enabled = true -p 9200:9200 elasticsearch:1.7.1
现在Fig或Ansible可以通过ENVvariablesJAVA_OPTS。 唯一的目的是确保原始的JAVA_OPTS被保留。
- 什么是更改PostgreSQLconfiguration的可靠方法,尤其是将其数据目录移动到脚本中?
- 如何在启动时加载LDAPdocker容器数据
- 如何使容器在Docker Compose中等待其他容器
- 如何将variables作为属性传递给Docker中的Wildfly的xmlconfiguration文件
- 通过应用程序使用的jar文件传递环境variables
- stream浪者不会提供docker工人
- Ansible docker_container'否请求URL中的主机',docker pull正常工作
- 为openstack安装novadocker
- Docker容器和Ansible Playbook之间有什么区别?