簡體   English   中英

Docker - Docker Compose 停止公司級服務而不是基礎服務

[英]Docker - Docker Compose stop company level services not base services

我有像 redis 和 mongodb 這樣的基礎服務,它們將共享同一圖像的多個容器。

一旦客戶請求新公司,我們將使用新端口為請求的公司創建一個新的 docker-compose 文件,並將 apache 配置為指向新的 Web 端口。

使用基本服務啟動 company-1 服務

docker-compose -f docker-compose.base.yml -f docker-compose-company-1.yml up -d

公司 2 的方法相同

docker-compose -f docker-compose.base.yml -f docker-compose-company-2.yml up -d

這將為基本服務和 copmany 服務創建實例,並為公司傳遞配置。

同時down company-1服務

docker-compose -f docker-compose.base.yml -f docker-compose-company-1.yml down

這也會降低基本服務,但公司 2 需要的基本服務

如果我們通過 follwong 命令

docker-compose -f docker-compose-company-1.yml down

拋出錯誤ERROR: 服務 'company-1' 有一個指向未定義的服務 'mongodb-service' 的鏈接。

docker-compose 能解決我們的問題嗎?

如何使用 docker 關閉特定的 copmany 服務而不是基礎服務 compose down

有關 docker-componse 文件的更多信息

docker-compose.base.yml 服務

  • mongodb服務
  • redis 服務
  • 一般crons服務
  • 網管服務
  • 主服務器服務

docker-compose-company-1.yml 服務

  • 網絡服務公司 - Angular APP
  • crons-company-services - 公司的 Crons
  • mongodb-company - 公司級別的 mongodb
  • 與主人溝通 - 尋找來自主人服務的請求
  • company-server-server - 用於 web api 調用的公司服務器

您可以使用 extends: docker-compose 中的選項來解決這個問題

docker-compose-base.yml

services:
    base:
    image:
    container_name:
    ports:

docker-compose-company.yml

services:
   custom:
    image:
    container_name:
    ports:

使用基地和公司的服務創建一個新的撰寫文件

擴展docker-compose 的選項

docker-compose-base-company.yml

services:
    base:
    extends:
    file: docker-compose-base.yml
    service: base

   custom:
    image:
    container_name:
    ports:

您可以使用 docker-compose-base-company.yml 來運行 base 和 company 的服務

docker-compose -f docker-compose-base-company.yml up

並使用 docker-compose-company.yml 單獨關閉公司服務

docker-compose -f docker-compose-company.yml down

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM