Py学习  »  docker

如何将多个docker compose文件与扩展名字段和yml锚合并?

membersound • 3 年前 • 1418 次点击  

我想创建一个具有默认配置的基本docker文件,并将其与特定于环境的配置合并:

docker-compose.base.yml : 卷数: .... 健康检查: 测试:。。。

docker-compose.prod.yml : 版本:“3.7”

services:
  hello-docker:
    <<: *my-defaults
    image: ...
    ports: ...

但当我运行 docker-compose config 命令,我得到一个错误:

docker-compose -f docker-compose.base.yml -f docker-compose.prod.yml config

结果:

yaml.composer.ComposerError: found undefined alias 'my-defaults'
  in "./docker-compose.yml", line 5, column 9

那么,与锚合并是不可能的吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132212
文章 [ 1 ]  |  最新文章 3 年前
David Maze
Reply   •   1 楼
David Maze    3 年前

YAML锚点是单个文件的本地锚点。所以不,你不能在一个文件中定义一个锚,然后在另一个文件中引用它。

因为在使用时,Compose将合并设置 multiple Compose files 不过,你真的不需要这么做。如果你的基地 docker-compose.yml 档案上说

version: '3.8'
services:
  app:
    image: registry.example.com/app/${APP_TAG:-latest}
    healthcheck: { ... }

然后是你的发展 docker-compose.dev.yml

version: '3.8'
services:
  app:
    build: .

然后它将继承 image: 姓名和 healthcheck: 设置,如果两者都有 docker-compose -f 选项。