как передать имя хоста как env var с сервером rancher

Я использую докер 1.12 и сервер ранчера 1.5.9. Я пытаюсь создать стек в ранчере для развертывания и оркестровки моего приложения. Моя проблема в том, что мне нужно передать как env var имя хоста, на котором будет работать контейнер.

Поскольку у меня есть только один образ, который будет использоваться для создания одного вида контейнера на нескольких хостах (скажем, 2 для тестов), я не могу передать его как HOSTNAME=myhostname. Значение должно быть var, которое будет установлено на хосте докера.

Кто-нибудь знает, как это сделать с интерфейсом сервера ранчера? Кто-нибудь знает, как владелец ранчо получает имя хоста при добавлении пользовательского хоста?

Можем ли мы использовать для этого точку входа или CMD?


person zeO_340    schedule 09.08.2017    source источник


Ответы (1)


В моем случае помогло наличие /etc/hosts на машине, которая отдает приоритет желаемому имени над localhost. Очевидно, также есть /etc/hostname, который согласуется с /etc/hosts.

Я использую контейнер Linux. Так у меня так выглядит в ct-config до конвертации в зажигание.

storage:
  files:
    - filesystem: "root"
      path:       "/etc/hostname"
      mode:       0644
      contents:
        inline: ${hostname}
    - filesystem: "root"
      path:       "/etc/hosts"
      mode:       0644
      contents:
        inline:  "127.0.0.1 ${hostname} localhost\n
                 ::1 ${hostname} localhost"

Просто убедитесь, что у вас есть все вышеперечисленное, прежде чем запускать строку регистрации владельца ранчо.

sudo docker run --rm --privileged \
-v /var/run/docker.sock:/var/run/docker.sock \ 
-v /var/lib/rancher:/var/lib/rancher \
rancher/agent:v1.2.7 https://myrancher/v1/scripts/TOKEN
person Community    schedule 28.12.2017