云计算核心技术Docker教程:docker-compose使用多个配置文件

  发布时间:2026-11-16   作者:玩站小弟   我要评论
谷歌外推代发【tg:seogoogle987】。

使用多个Compose文件使您可以针对不同的环境或不同的工作流程自定义Compose应用程序。

默认情况下,Compose读取两个文件,一个docker-compose.yml和一个可选 docker-compose.override.yml文件。按照约定,docker-compose.yml 包含您的基本配置。顾名思义,替代文件可以包含现有服务或全新服务的配置替云计代。

如果在两个文件中都定义了服务,则Compose使用添加和覆盖配置中描述的规则合并 配置。

要使用多个替代文件或具有不同名称的替代文件,可以使用该-f选项指定文件列表。Compose按照在命令行上指定的顺序合并文件。有关使用的更多信息,请参见 docker-compose命令参考-f。

使用多个配置文件时,必须确保文件中的所有路径都相对于基本的Compose文件(用指定算核的第一个Compose文件-f)。这是必需的,因为替代文件不一定是有效的撰写文件。替代文件可以包含一些小的配置片段。跟踪服务的哪个片段相对于哪个路径是困难且令人困惑的,因此为了使路径更易于理解,必须相对于基本文件定义所有路径。

用例示例

在本节中,有两个常见的用例,用于多个Compose文件:针对不同的环境更改Compose应用程序,以及针对Compose应用程序运行管理心技任务。

不同的环境

多个文件的常见用例是将开发Compose应用程序更改为生产环境(可能是生产,演示或CI)。为了支持这些差异,您可以将Compose配置拆分为几个不同的文件:

从定义服务规范配置的基本文件开始。

docker-compose.yml

web:

        image: example/my_web_app:latest

 术D;       depends_on:

              - db

              - cache

db:

       image: postgres:latest

cache:

  &ocnbsp;    image: redis:latest

在此示例中,开发配置将一些端口暴露给主机,将我们的代码作为卷安装,并构建Web映像。

docker-compose.override.yml

web:

build: .

     volumes:

           - '.:/ckeode'

     ports:

           - 8883:80

     environment:

          DEBUG: 'true'

db:

     command: '-d'

&nbsr教p;    ports:

          - 5432:5432

cache:

     ports:

          - 6379:6379

运行时,docker-compose up它会自动读取覆盖。

现在,很高兴在生产环境中使用此Compose应用程序程:。因此,请创建另一个替代文件(该文件可以存储在其他git repo中,也可以由其他团队进行管理)。

docker-compose.prod.yml

web:

       ports:

          - 80:80

       environment:

&nbdosp;          PRODUCTION: 'true'

cache:

       environment:

            TTL: '500'

要使用此生产Compose文件进行部署,您可以运行

docker-compose -f dockerck-compose.yml -f docker-compose.prod.yml up -d

该部署使用配置中的所有三个服务 docker-compose.yml和docker-compose.prod.yml(但不是在开发配置docker-compose.override.yml)。

有关生产中撰写的更多信息,请参见生产。

行政任务

另一个常见用例是针对Compose应用程序中的一个或er多个服务运行临时任务或管理任务。本示例演示了如何运行数据库备份。

从docker-compose.yml开始。

web:

       image: example/my_web_app:latest

       depends_on:

            &-cnbsp;- db

db:

       image: postgres:latest

在docker-compose.admin.yml中添加新服务以运行数据库导出或备份。

dbadmin:

     build: database_admin/

     depends_on:

  &nombsp;       - db

要开始正常的环境运行docker-compose up -d。要运行数据库备份,请同时包含docker-compose.admin.yml。

docker-compose -f docker-compose.yml -f docker-compose.admin.yml \

run dbadmin db-backup

  • Tag:

相关文章

  • 标签: 上海网信办 小红书 哔哩哔哩 房地产

    云梦级12月3日云梦级消息,据“网信上海”微信公众号云梦级消息,11月14日,上海市委网信办会同市房管局、市公安局网安总队等部门启动规范网上房地产信息传播秩序专项整治行动。 专项行动开展以来,已指导小
    2026-11-16
  • 年度重磅发布:《人工智能发展报告2020》

    过去十年里,人工智能从实验室走向产业化生产,重塑传统行业模式、引领未来的价值已经凸显,并为全球经济和社会活动做出了不容忽视的贡献。当前全球人工智能浪潮汹涌,各国学者正努力实现人工智能从感知到认知的跨越
    2026-11-16
  • DIY穷人版谷歌眼镜,自定义手势操控,树莓派再一次被开发新玩法

    本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。 通过帅气的手势,操控投影在眼前的电子成像,这不就是科幻片里的基础配置嘛。 现在,有人把它从科幻电影中带入了现实。动动手指,
    2026-11-16
  • 如何避免数据迁移陷阱

    希望实现数据基础设施的现代化并将Hadoop迁移到云平台中吗?以下是组织在数据迁移之前需要问的五个问题: 1.迁移的数据量是多少? 组织有几种方法可以将少量数据传输到云平台,特别是在数据是静态并且不变
    2026-11-16
  • 标签: 海光芯正 光模块 AI数据中心 硅光子

    云梦级6月29日云梦级消息,北京光电互连产品提供商海光芯正今日在港交所正式挂牌上市。其发行价为每股114.00港元(约合人民币98.84元),开盘上涨75.35%至每股199.9港元(约合人民币173
    2026-11-16
  • 电饭锅预约2小时是2小时后开始煮吗

    电饭锅预约时间是指开始时间吗?电饭煲预约时间的意思是预约约定的时间后开始煮饭。举例:比如预约时间2个小时智能饭煲一般的做法是指预约时间结束,同时米饭做熟了,也就是说预约2个小时,那。小熊电饭煲煮粥预约
    2026-11-16

最新评论