Docker Compose中使用引用和锚点

有的时候Docker Compose中会有重复内容,本着DRY的精神(能少敲一下就少敲一下),可以使用锚点和引用-alias and anchors

version: "3.7"

x-app: &default-app
  build:
    context: "."
    dockerfile: Dockerfile-APP
  depends_on:
    - "postgres"
    - "redis"
  image: "webapp:tag"
  restart: "unless-stopped"
  volumes:
    - ".:/app"

services:
  webA:
    <<: *default-app 
    ports:
      - "8000:8000"

  webB:
    <<: *default-app
    restart: "always"  #也可以覆盖默认值

当然这也不是万能的:

  1. 在YAML中alias不支持跨文件,所以想要利用docker compose支持-f 来定义多个compose文件的便利,一处定义多处引用的想法是不现实的。
  2. 对数组类型的值是不支持引用的,下面这种情况就不能偷懒了。
x-ports: &default-ports
  - "8000:8000"
  - "8888:8888"

services:
  webA:
    ports:
      <<: *default-ports
      - "9999:9999"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容