天天看點

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      

說明

參考資料

繼續閱讀