首页 > 解决方案 > 如何评估 docker-compose.yml 文件中的动态变量?

问题描述

我想在文件中使用当前日期作为文件名的后缀docker-compose.yml。最终目标是一个文件,例如my_log_123456789.log123456789当前的 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
      ...

我尝试了一些变体并遇到了以下问题:

如何将当前日期附加到文件中的日志docker-compose.yml文件?

标签: bashdockerdatedocker-composedockerfile

解决方案


您可以做的是.env在调用之前生成docker-compose

#!/usr/bin/env bash

cat << EOF > .env
NOW=$(date +%s)
EOF

docker-compose up

推荐阅读