如何在Docker撰写文件中逃避$美元符号?

时间:2016-11-15 20:58:57

标签: escaping docker-compose

我有一个YAML标量,当我尝试评估我的docker-compose.yml文件时会抛出以下错误:

  

错误:“环境”选项的插值格式无效   service“time_service”:“$ {Time.now}”

YAML:

---
version: '2'
services:
  time_service:
    build: "."
    environment:
      TIME: "${Time.now}"

如何保持与写入相同的字符串输出,但避免让docker-compose将其解释为错误的字符串插值?

2 个答案:

答案 0 :(得分:78)

您正在点击docker-compose变量替换,该文档记录良好here

  

支持$VARIABLE${VARIABLE}语法。 ${VARIABLE-default}等扩展的shell样式功能不受支持。

     

当您的配置需要文字美元符号时,您可以使用${VARIABLE/foo/bar}(双美元符号)。这也可以防止Compose插值,因此$$允许您引用不希望由Compose处理的环境变量。

$$是用Python编写的,正如你在github看到的那样,在许多程序中可以找到获取特殊字符原始含义的加倍机制,我需要自己使用它,同时编程,早在1984年。

答案 1 :(得分:24)

通过复制this post

%个字符的建议找到答案

需要双美元符号$$

所以我需要"$${Time.now}",其评估为"${Time.now}"

相关问题