【发布时间】:2020-05-31 19:42:24
【问题描述】:
我想在我的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 文件中的日志文件?
【问题讨论】:
-
您可以将环境变量传递给
docker-compose run -e VAR=VAL。 -
不,你不能……
-
您可以在运行 Compose 文件之前从您的环境中导出变量吗?即从
.env中取出NOW -
运行
NOW="$(date +%s)" sudo docker-compose up -d会生成一个目录xxx_NOW.log/ -
@KamilCuk,是的,是的,你可以。 docs.docker.com/compose/environment-variables
标签: bash docker date docker-compose dockerfile