0

我有像 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

这将为基础服务和公司服务创建实例以及为公司传递的配置。

虽然下公司-1 服务

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

这也会降低基础服务,但 company-2 所需的基础服务

如果我们通过以下命令

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

抛出错误 ERROR:服务 'company-1' 具有未定义的服务 'mongodb-service' 的链接。

docker-compose 能解决我们的问题吗?

如何使用 docker compose down 关闭特定的 copmany 服务而不是基础服务

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

docker-compose.base.yml 服务

  • mongodb-服务
  • redis服务
  • 通用 crons 服务
  • 网站管理员服务
  • 主服务器服务

docker-compose-company-1.yml 服务

  • 网络服务公司 - Angular APP
  • crons-company-services - 公司的 Cron
  • mongodb-company - 公司级别的 mongodb
  • 与主通信 - 查找来自主服务的请求
  • company-server-server - 用于 Web api 调用的公司服务器
4

1 回答 1

1

您可以使用 docker-compose 中的 extends: 选项来解决这个问题

docker-compose-base.yml

services:
    base:
    image:
    container_name:
    ports:

码头工人撰写公司.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
于 2019-11-29T11:33:18.613 回答