Как передать значение порта другому марафонскому приложению в json - PullRequest
0 голосов
/ 03 октября 2018

Я развертываю 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"
...