配置 文件

使用配置文件,您可以定义一组活动配置文件,以便针对各种用途和环境调整 Compose 应用程序模型。

的 services 顶级元素支持用于定义命名用户档案列表的属性。 没有属性的服务始终处于启用状态。profilesprofiles

当列出的服务都与活动服务不匹配时,Compose 会忽略该服务,除非该服务 由命令显式定位。在这种情况下,其配置文件将添加到活动配置文件集中。profiles

注意

所有其他顶级元素不受影响,并且始终处于活动状态。profiles

对其他服务的引用(通过 或 shared resource syntax )不会 自动启用原本会被活动配置文件忽略的组件。相反 Compose 返回错误。linksextendsservice:xxx

说明示例

services:
  web:
    image: web_image

  test_lib:
    image: test_lib_image
    profiles:
      - test

  coverage_lib:
    image: coverage_lib_image
    depends_on:
      - test_lib
    profiles:
      - test

  debug_lib:
    image: debug_lib_image
    depends_on:
      - test_lib
    profiles:
      - debug

在上面的示例中:

  • 如果在未启用配置文件的情况下解析 Compose 应用程序模型,则它仅包含该服务。web
  • 如果启用了用户档案,则模型将包含 services 和 ,以及始终启用的 service 。testtest_libcoverage_libweb
  • 如果启用了配置文件,则模型将同时包含 和 services,但不包含 和 , 因此,模型对于 的约束是无效的。debugwebdebug_libtest_libcoverage_libdepends_ondebug_lib
  • 如果启用了配置文件,则模型包含所有服务;和。debugtestwebtest_libcoverage_libdebug_lib
  • 如果 Compose 作为要运行的显式服务执行,并且配置文件 处于活动状态,即使未启用配置文件。test_libtest_libtesttest
  • 如果执行 Compose 时将显式服务作为要运行的显式服务,则服务和 profile 处于活动状态,并由约束拉入。coverage_libcoverage_libtesttest_libdepends_on
  • 如果 Compose 作为要运行的显式服务执行,则模型再次为 对 的约束无效,因为 和 没有列出 common。debug_libdepends_ondebug_libdebug_libtest_libprofiles
  • 如果执行 Compose 时将作为要运行的显式服务,并且启用了 profile,则 配置文件将自动启用,并且 Service 将作为依赖项拉入,从 services 和 .debug_libtestdebugtest_libdebug_libtest_lib

了解如何在 Docker Compose 中使用。profiles