Extend

Docker Compose的extends属性允许你在不同的文件,甚至是完全不同的项目之间共享公共配置

如果你有几个service需要重用一组公共配置选项,那么Extend服务非常有用。通过Extend,你可以在一个地方定义一组公共服务选项,并从任何地方引用它。您可以引用另一个Compose文件,并选择您希望在自己的应用程序中也使用的服务,并能够根据自己的需要覆盖某些属性。

compose.yml
services:
  web:
    extends:
      file: common-services.yml
      service: webapp

这指示Compose重用在文件common-services.yml中定义的web应用服务的配置:

common-services.yml
services:
  webapp:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - "/data"

在这种情况下,Docker Compose执行的compose.yml文件内容大致如下:

services:
  web:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - "/data"

Volumes_from和depends_on永远不会在使用extends的服务之间共享。

这是为了避免隐式依赖这样可以确保在读取当前文件时清楚地看到服务之间的依赖关系。

Last updated