首页 > 解决方案 > 我可以在 docker compose 中设置一个变量并多次使用它以获得更清晰的代码吗?

问题描述

我可以在 docker-compose yml 文件中设置一个变量以获得更清晰的代码吗?

例如,如果有一个值我不止一次使用并且我想通过一个声明来保留它

喜欢 :

version: '2.4'
ValueToPassFromVariable: '2020-10-10 12:00:00'

services:
  img1:
     image: img1
     build:
       context: .
       args:
         - STARTDATE=ValueToPassFromVariable
       dockerfile: DockerFileImg1
       
  img2:
     image: img2
     build:
       context: .
       args:
         - STARTDATE=ValueToPassFromVariable
       dockerfile: DockerFileImg2

我想节省一些价值ValueToPassFromVariable并使用它几次,我可以做这样的事情吗?

标签: dockerdocker-composeyaml

解决方案


如果您更新到更新版本的 docker-compose,您可以通过使用扩展字段获得通用重用:

version: "3.8"

x-args: &args
  args:
    - STARTDATE=2020-10-10 12:00:00

services:
  img1:
     image: img1
     build:
       context: .
       << : *args
       dockerfile: DockerFileImg1
       
  img2:
     image: img2
     build:
       context: .
       << : *args
       dockerfile: DockerFileImg2

推荐阅读