学习优先级:★★★★☆

易用性:★★★☆☆

在 Docker Compose 中,可以使用 extends 关键字从其他文件中继承配置,从而提高配置的可重用性和结构化。

以下是一个示例,展示了如何使用 extends 从其他文件中继承配置。

示例代码

docker-compose.yml

version: '3.7'

services:
  web:
    image: nginx
    ports:
      - "80:80"
    extends:
      file: common.yml
      service: common-web

common.yml

version: '3.7'

services:
  common-web:
    environment:
      - NODE_ENV=production
      - DEBUG=false

执行结果

运行此配置后,web 服务继承了 common-web 的环境变量。

使用 extends 可以将通用配置定义在单独的文件中,这有助于提高代码的模块化和可维护性。如果多个服务需要类似的配置,可以轻松地通过 extends 进行整合。

补充说明

extends 功能在早期版本的 Docker Compose 中引入,但在较新版本中不再推荐使用。相反,建议使用 Docker Compose 模板或在 docker-compose 命令中组合多个文件。例如:

docker-compose -f common.yml -f docker-compose.yml up

这种方式提供了更高的灵活性和更好的实践。