相关疑难解决方法(0)

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

我有一个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将其解释为错误的字符串插值?

escaping docker-compose

61
推荐指数
2
解决办法
3万
查看次数

为什么要睡觉并在bash中等待?

我在理解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呢?另外,双美元符号只是逃脱了美元符号${!}吗?

我正在寻找将睡眠和等待结合使用的其他地方,但是似乎没有任何关于原因的解释:

  1. http://www.masteringunixshell.net/qa17/bash-how-to-wait-seconds.html
  2. /sf/answers/931093061/
  3. https://superuser.com/a/753984/98583

bash docker

13
推荐指数
1
解决办法
541
查看次数

标签 统计

bash ×1

docker ×1

docker-compose ×1

escaping ×1