docker-compose 可以方便我们进行多容器环境的管理,通过也提供了一些比较有意思的功能,比如extends,以及profiles

extends 的场景

比如我们需要使用一些模版进行服务的扩展,就可以使用次能力,模版是独立的docker-compose 文件定义格式,我们可以使用对于的某一个服务的定义
然后可以改写

profiles 的场景

比如我们需要测试一个多环境,但是不同环境起不通的服务,类似spring boot 的profile 不同profile 激活不同的服务以及bean,或者配置

参考使用

集成以上几个功能的测试

  • docker-compose.yaml
 
version: '3'

services:

  app:

    extends:

     file: myapp.yaml

     service: app-web

    networks:

      - demoapp

      - appdemo

      - mydemoapp

  redis:

    image: redis

    profiles: ["redisdb"]  # profile 使用

networks:

  demoapp:

  appdemo:

  mydemoapp:

myapp.yaml 模版定义

version: '3'

services:

  app-web:

    image: openresty/openresty:1.21.4.1-3-alpine-fat

    ports:

      - 80:80

  • 启动
    默认启动docker-compose up -d 会看到不包含redis 容器,使用 docker-compose –profile redisdb up -d 可以看到redis 容器
    profle 的启动方式还有一种是基于环境变量。
    命令如下
 
docker compose --profile frontend --profile debug up -d

COMPOSE_PROFILES=frontend,debug docker compose up -d

说明

以上几个功能还是比价有用的,可以更好的进行环境部署以及可选的开启容器组件

参考资料

https://docs.docker.com/compose/
https://docs.docker.com/compose/reference/envvars/
https://docs.docker.com/compose/compose-file/
https://docs.docker.com/compose/profiles/
https://docs.docker.com/compose/extends/

原文地址:http://www.cnblogs.com/rongfengliang/p/16852426.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性