互联网技术 / 互联网资讯 · 2023年11月23日

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

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

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册