docker - 我可以在 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
并使用它几次,我可以做这样的事情吗?
解决方案
如果您更新到更新版本的 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
推荐阅读
- ruby-on-rails - 使用 Rails 5.2 播种时 ActiveRecord 验证失败
- windows - 在 Windows 上使用 bazel 的 Google glog:没有得到有用的堆栈跟踪
- sql - 如何将 Toad Data 模型导入 Erwin Data Modeler?
- python - Python:无法过滤 CSV,ValueError:只能将大小为 1 的数组转换为 Python 标量
- r - har_agg(RM1, period, nperiods) 中的错误:与请求的类型不兼容:[type=character; 目标=双]
- qt - 使用鼠标区域或 DropArea 的 ListView 多选
- nuxt.js - 如何在 Nuxt 中将路由器内容渲染到 index.html
- javascript - 在页面加载 Javascript 时将 div 内容显示为默认值
- jenkins - 你能在一个 Jenkins 阶段加载一个 groovy 文件吗?运行函数;并使用 @groovy.transform.Field 在多个 Jenkins 阶段共享数据
- javascript - 状态变化未反映在 Next.Js 中的功能中