Marathon: Как указать переменные окружения в args

Я пытаюсь запустить контейнер Consul на каждом из моих подчиненных узлов Mesos.

С 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!

Поэтому мне просто интересно, есть ли какой-нибудь обходной путь, чтобы я мог запустить контейнер Consul на каждом из моих подчиненных узлов Mesos.


Обновление:

Спасибо @janisz за ссылку.

После просмотра следующих дискуссий:

  • #3416: аргументы в файле marathon не разрешают переменные env

  • #2679: Возможность указать значение имени хоста, на котором запущена задача приложения. на

  • #1328: Укажите переменные среды в конфигурации, которые будут использоваться на каждом хосте, через REST-API

  • #1828: Поддержка дополнительных переменных и расширение переменных в определении приложения

а также документацию Marathon по переменным среды задачи.

Я так понимаю:

  • В настоящее время невозможно передать переменные среды в args
  • В некоторых сообщениях указано, что можно передавать переменные среды в "cmd". Но эти переменные среды являются переменными среды задач, предоставляемыми Marathon, а не переменными среды на вашем хост-компьютере.

Пожалуйста, поправьте, если я был неправ.


person sliter    schedule 18.08.2016    source источник
comment
Я думаю, что этот вопрос связан с #3416   -  person janisz    schedule 19.08.2016


Ответы (1)


Вы можете попробовать это.

{
    "id": "consul-agent",
    "instances": 10,
    "constraints": [["hostname", "UNIQUE"]],
    "container": {
        "type": "DOCKER",
        "docker": {
            "image": "consul",
            "privileged": true,
            "network": "HOST",
            "parameters": [
                "key": "env",
                "value": "YOUR_ENV_VAR=VALUE"
            ]
        }
    }
}

Or

{
    "id": "consul-agent",
    "instances": 10,
    "constraints": [["hostname", "UNIQUE"]],
    "container": {
        "type": "DOCKER",
        "docker": {
            "image": "consul",
            "privileged": true,
            "network": "HOST"
        }
    },
    "env": {
        "ENV_NAME" : "VALUE"
    }
}
person Cornellius    schedule 08.05.2017