Я развертываю 2 приложения-докера через марафон на кластере мезос.Одна группа, содержащая подгруппу и эта подгруппа, содержащая 2 приложения (app, db)
APP, зависит от DB
Мне нужно предоставить динамически назначенный хост-порт контейнера DB для контейнера APPкак переменная ENV через файл JSON.Затем я могу манипулировать им далее во время выполнения с помощью сценариев оболочки / подключиться к базе данных и т. Д.
Как мне это сделать, сохраняя динамический хост-порт, то есть без фиксации на 1521?
См. Ниже (извините заформатирование)
{
"groups":[
{
"apps":[
{
"cpus":0.5,
"mem":2096,
"instances":1,
"container":{
"docker":{
"image":"NAME",
"type":"DOCKER",
"network":"BRIDGE",
"forcePullImage":true,
"portMappings":[
THIS DBPORT ===> {
"name":"DBPORT",
"hostPort":0,
"containerPort":1521,
"protocol":"tcp"
},
{
"hostPort":0,
"containerPort":9990,
"protocol":"tcp"
}
]
}
},
"fetch":[
{
"uri":"file:///etc/docker/docker.tar.gz",
}
],
"id":"/group1/subgroup1/database"
},
{
"cpus":0.5,
"mem":2096,
"instances":1,
"container":{
"docker":{
"image":"IMAGE",
"type":"DOCKER",
"network":"BRIDGE",
"forcePullImage":true,
"portMappings":[
{
"hostPort":0,
"containerPort":8080,
"protocol":"tcp"
},
{
"hostPort":0,
"containerPort":9990,
"protocol":"tcp"
}
]
}
},
"env":{
"ORACLE_HOST":"database.subgroup1.group1.marathon.mesos",
"ORACLE_PORT":"XXXXX", <=== PASS DBPORT HERE
"ORACLE_SID":"SID"