bash - 如何评估 docker-compose.yml 文件中的动态变量?
问题描述
我想在文件中使用当前日期作为文件名的后缀docker-compose.yml
。最终目标是一个文件,例如my_log_123456789.log
,123456789
当前的 unix 日期在哪里。
我尝试使用.env
文件,但没有按预期进行评估。我的尝试是:
# .env
NOW="$(date +%s)"
# docker-compose.yml
version: '3.8'
services:
xxx:
container_name: xxx
image: xxx/xxx
volumes:
- /home/ubuntu/xxx_"$(NOW)".log:/home/ubuntu/xxx.log
...
我尝试了一些变体并遇到了以下问题:
ERROR: Invalid interpolation format for "volumes" option in service "xxx": "/home/ubuntu/xxx_$(NOW).log:/home/ubuntu/xxx.log"
- 创建了一个名为的目录
'xxx_"$(date +%s)".log'
如何将当前日期附加到文件中的日志docker-compose.yml
文件?
解决方案
您可以做的是.env
在调用之前生成docker-compose
:
#!/usr/bin/env bash
cat << EOF > .env
NOW=$(date +%s)
EOF
docker-compose up
推荐阅读
- angular - 带有可选路由的 Angular RouterReuseStrategy
- java - KeySpec 抛出“未找到盐”- 盐不是必需的
- r - 包“officer”中的 body_replace_all_text() 方法不起作用
- r - 使用 R 读取文本文件并将提取的数据格式化为表格
- git - 使用 GitPython 的 git archive --remote 命令
- c# - 尝试 Catch 处理异常
- angular - 如何在角度中设置空值
- xml - 使用 XSLT 从根目录中删除 XML 默认命名空间
- php - laravel 数据库播种有限制吗?
- node.js - 节点-passport-http如果失败如何返回json响应