我正在尝试在我的每个mesos从节点上运行一个consur容器。
对于marathon,我有以下json脚本:
{
"id": "consul-agent",
"instances": 10,
"constraints": [["hostname", "UNIQUE"]],
"container": {
"type": "DOCKER",
"docker": {
"image": "consul",
"privileged": true,
"network": "HOST"
}
},
"args": ["agent","-bind","$MESOS_SLAVE_IP","-retry-join","$MESOS_MASTER_IP"]
}
然而,马拉松似乎对待 args
作为纯文本。
所以我总是出错:
==> Starting Consul agent...
==> Error starting agent: Failed to start Consul client: Failed to start lan serf: Failed to create memberlist: Failed to parse advertise address!
因此,我只是想知道是否有任何解决方法,以便我可以在我的每个mesos从节点上启动一个consur容器。
更新:
感谢@janisz的链接。
在看了以下讨论之后:
3416:文件中的参数不解析环境变量
2679:能够指定运行应用程序任务的主机名的值
1328:在配置中指定要通过RESTAPI在每个主机上使用的环境变量
1828:在应用程序定义中支持更多变量和变量扩展
以及有关任务环境变量的马拉松文档。
我的理解是:
目前无法在args中传递环境变量
一些帖子指出可以将环境变量传入 "cmd"
. 但是这些环境变量是marathon提供的任务环境变量,而不是主机上的环境变量。
如果我错了,请改正。
1条答案
按热度按时间xt0899hw1#
你可以试试这个。
或