繁体   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