0
点赞
收藏
分享

微信扫一扫

docker-compose 一些有用的新功能

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

- 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/​​

举报

相关推荐

0 条评论