我有一个YAML标量,当我尝试评估我的docker-compose.yml文件时抛出以下错误:
错误:服务"time_service"中"环境"选项的插值格式无效:"$ {Time.now}"
YAML:
---
version: '2'
services:
time_service:
build: "."
environment:
TIME: "${Time.now}"
Run Code Online (Sandbox Code Playgroud)
如何保持与写入相同的字符串输出,但避免让docker-compose将其解释为错误的字符串插值?
我在理解docker-compose.yml中服务的启动命令时遇到了麻烦。.yml中的两个相关行是:
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
Run Code Online (Sandbox Code Playgroud)
和
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
Run Code Online (Sandbox Code Playgroud)
为什么将sleep命令发送到后台然后等待呢?为什么不直接做sleep 6h呢?另外,双美元符号只是逃脱了美元符号${!}吗?
我正在寻找将睡眠和等待结合使用的其他地方,但是似乎没有任何关于原因的解释: