我可以在docker compose中设置一个变量并多次使用它来获得更清晰的代码吗?
我可以在docker compose yml文件中设置一个变量以获得更清晰的代码吗 例如,如果有一个值我使用了不止一次,并且我想用一个声明来保存它 比如:我可以在docker compose中设置一个变量并多次使用它来获得更清晰的代码吗?,docker,docker-compose,yaml,Docker,Docker Compose,Yaml,我可以在docker compose yml文件中设置一个变量以获得更清晰的代码吗 例如,如果有一个值我使用了不止一次,并且我想用一个声明来保存它 比如: version: '2.4' ValueToPassFromVariable: '2020-10-10 12:00:00' services: img1: image: img1 build: context: . args: - STARTDATE=ValueToPas
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
中保存一些值并使用它几次,我可以这样做吗?您有两个选项:
export STARTDATE=value
窗户
setx STARTDATE value
之后,在docker compose中,您需要使用此值
例如:
version: '2.4'
ValueToPassFromVariable: '2020-10-10 12:00:00'
services:
img1:
image: img1
build:
context: .
args:
- STARTDATE=${STARTDATE}
dockerfile: DockerFileImg1
img2:
image: img2
build:
context: .
args:
- STARTDATE=${STARTDATE}
dockerfile: DockerFileImg2
有关更多详细信息,请参阅。如果您更新到docker compose的较新版本,您可以通过以下方式获得通用重用:
版本:“3.8”
x-args:&args
args:
-起始日期=2020-10-10 12:00:00
服务:
img1:
图片:img1
建造:
上下文:。
也许第二个选项对我很有用,但通常我只想保存变量,而不是写两次它的值,我不想在我的机器上设置变量,尽管这可能是一个好主意。如果你不想在你的机器上设置环境变量,你可以在你的项目中创建.env文件并使用它来代替设置环境变量。当然,在某些情况下,它也可能是一个好方法,但因为它与语法更相关,为了生成更简单的代码,它不想在其他文件中进行真正的更改
version: '2.4'
ValueToPassFromVariable: '2020-10-10 12:00:00'
services:
img1:
image: img1
build:
context: .
args:
- STARTDATE=${STARTDATE}
dockerfile: DockerFileImg1
img2:
image: img2
build:
context: .
args:
- STARTDATE=${STARTDATE}
dockerfile: DockerFileImg2