如何使用rancher服务器将主机名作为env var传递

时间:2017-08-09 14:08:20

标签: docker dockerfile rancher

我正在使用docker 1.12和rancher server 1.5.9。我试图在牧场主中创建一个堆栈来部署和编排我的应用程序。我的问题是我需要传递容器将运行的主机的主机名env var

由于我只有一个图像将用于在多个主机上创建一种容器(让我们说2对于测试)我不能像HOSTNAME=myhostname那样传递它。该值必须是var,将使用docker host设置。

有没有人知道如何使用牧场服务器UI进行此操作? 有没有人知道牧羊人在添加自定义主机时如何检索主机名?

我们可以使用入口点或CMD来做到这一点吗?

1 个答案:

答案 0 :(得分:0)

在我的案例中,在/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