变量替换
#
变量替换使用rancher up
时,可以在docker-compose.yml
和rancher-compose.yml
文件中使用运行rancher
命令的机器中的环境变量。 这仅仅在rancher
命令中支持,在 Rancher UI 中不支持。
#
如何使用通过使用docker-compose.yml
和rancher-compose.yml
文件,您可以引用机器上的环境变量。 如果机器上没有环境变量,它将用空白字符串替换。 Rancher
将会提示一个警告,指出哪些环境变量没有设置。 如果使用环境变量作为镜像标签时,请注意,rancher
不会从镜像中自动删除:
来获取 latest 镜像。 因为镜像名,比如<镜像名>:
是一个无效的镜像名,所以不会部署成功。用户需要确定机器中所有的环境变量的有效性。
#
例子在我们运行rancher
的机器上,我们有一个环境变量IMAGE_TAG = 14.04
。
例子: docker-compose.yml
在 Rancher 中,一个ubuntu
服务将使用ubuntu:14.04
镜像来部署。
#
变量替换格式Rancher
支持与'docker-compose'相同的格式。
#
模板在docker-compose.yml
里面,Rancher 能够支持使用Go 模板系统,这样我们可以在docker-compose.yml
里面使用逻辑条件语句。模板可以与 Rancher CLI 一起使用,也可以与应用商店组合使用,这样可以让您配置您的应用商店模板,也可以让您根据答案来改变您的模板文件。
注意:目前我们只支持对
string
的比较。
#
例子如果您希望能够生成一个在内部暴露端口或者在外部暴露端口的服务,那么您可以设置逻辑条件来实现这样的功能。 在这个例子中,如果public
变量设置为ture
,那么ports
下面的8000
端口将对外开放。 否则,这些端口将在expose
下开放。在我们的示例中,默认值为 true。
docker-compose.yml
rancher-compose.yml
config.yml
#
应用栈名称替换从 Rancher v1.6.6 开始,我们支持在docker-compose.yml
文件中替换
::: v-pre
{{ .Stack.Name }}
:::
。这样可以在 compose 文件中使用应用栈名称。
Docker Compose 文件可以用于创建新的应用栈,可以通过 Rancher 命令行或 UI 来创建。 如下面中的例子,您可以创建一个基于应用栈名称的标签。
docker-compose.yml
#
示例 如果您通过 Rancher 命令行来创建应用,例如rancher up -s myawesomestack -f docker-compose.yml
,那么这个应用将会创建一个带有标签stack-name=myawesomestack
的服务。
注意: 替换只是发生在应用栈创建时,之后对应用名称的修改无法触发替换。
#
双括号使用随着 Rancher 引入了模板系统,双括号 ::: v-pre ({{
or }}
) ::: 将被视为模板的一部分。如果您不想将这些字符转换为模板,您可以在包含字符的 compose 文件的顶部添加上#notemplating
。