推广 热搜: 京东  联通  iphone11  摄像头  企业存储  XSKY  京东智能采购  iPhone  网络安全  自动驾驶 

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

   日期:2021-01-07     来源:TechWeb编译    作者:itcg    浏览:402    我要评论    
导读:使用多个Compose文件使您可以针对不同的环境或不同的工作流程自定义Compose应用程序。

使用多个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

        depends_on:

              - db

              - cache

db:

       image: postgres:latest

cache:

       image: redis:latest

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

docker-compose.override.yml

web:

build: .

     volumes:

           - '.:/code'

     ports:

           - 8883:80

     environment:

          DEBUG: 'true'

db:

     command: '-d'

     ports:

          - 5432:5432

cache:

     ports:

          - 6379:6379

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

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

docker-compose.prod.yml

web:

       ports:

          - 80:80

       environment:

           PRODUCTION: 'true'

cache:

       environment:

            TTL: '500'

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

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

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

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

行政任务

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

从docker-compose.yml开始。

web:

       image: example/my_web_app:latest

       depends_on:

             - db

db:

       image: postgres:latest

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

dbadmin:

     build: database_admin/

     depends_on:

          - db

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

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

run dbadmin db-backup

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
0相关评论

头条阅读
推荐图文
相关资讯
网站首页  |  物流配送  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  京ICP备14047533号-2
Processed in 0.115 second(s), 11 queries, Memory 1.49 M