当前位置: 首页 > 知识库问答 >
问题:

如何仅为服务编写docker组合?

汪兴旺
2023-03-14

在我的docker-compose.yml文件中,我有很多服务:

  • nginx
  • mysql
  • 雷迪斯
  • 回声
  • php
  • ...

但也有一些我与docker compose一起使用的CLI实用程序运行--rm:

  • 工匠
  • 作曲家
  • npm

当我启动我的系统时,我会编写docker-compose。不幸的是,这也会尝试启动所有CLI实用程序。有没有办法在我的docker compose中分离这两个类别?

共有1个答案

吴同
2023-03-14

docker compose1.28.0开始,新的服务配置文件正是为此而设计的!使用配置文件可以将服务标记为仅在特定配置文件中启动:

services:
  nginx:
    # ...
  mysql:
    # ...
  composer:
    profiles: ["cli-only"]
    # ...
    # ...
  npm:
    profiles: ["cli-only"]
    # ...
docker-compose up # start main services, no composer and no npm
docker-compose run --rm composer
docker-compose run --rm npm

不幸的是,目前没有方便的方法来做到这一点。官方推荐的方法是将您的命令分离为自己的docker compose.yml

# start all your services
docker-compose up

# execute a defined command in docker-compose.cli.yml
docker-compose -f docker-compose.cli.yml run npm update

# if your command depends_on a service you need to merge the configs
docker-compose -f docker-compose.yml -f docker-compose.cli.yml run npm update

使用-f标志指定多个docker compose.yml文件将把它们合并在一起,请参阅文档。这允许您依赖于在另一个文件中定义的服务/网络/卷。

有关整个问题的深入讨论,请参阅docker/compose1896。

 类似资料:
  • 我有一个docker撰写与3服务:配置服务器,cpo事件和cpo执行者。我希望只有当配置服务器准备就绪时才启动服务,因为服务需要配置服务器服务中的配置文件。 docker-compose.yml: 依赖于、链接、healthcheck,没有任何东西可以保证这两个服务(cpo executor、cpo event)仅在配置服务器就绪后启动。

  • 在vert. x中编写异步请求处理程序的推荐方法是什么? 在此服务中,请求处理通常涉及调用DB、调用外部服务等。但是,我不想阻止请求处理线程。使用vet实现这一目标的推荐方法是什么。十、在一个典型的异步处理链中,我将使用请求处理线程向带有请求对象的消息总线发出消息。另一个处理程序将选择此消息并进行一些处理,例如检查请求参数。然后,这个处理程序可以向总线发出一条新消息,下一个处理程序将执行远程调用,

  • 问题内容: 下划线库提供了一个反跳功能,该功能可防止在设定的时间内多次调用该功能。他们的版本使用setTimeout。 我们如何用纯AngularJS代码做到这一点? 此外,我们可以利用$ q样式的承诺在反跳周期之后从调用的函数中检索返回值吗? 问题答案: 这是此类服务的工作示例:http : //plnkr.co/edit/fJwRER?p=preview。它创建了一个延迟对象,该对象将在最终调

  • 创建一个 HTTP 服务器 最简单的方法来创建一个 HTTP 服务器,所有选项使用默认的。如下所示: HttpServer server = vertx.createHttpServer(); 配置 HTTP 服务器 如果你不想使用默认值,创建服务器时可以通过传入一个HttpServerOptions实例配置: HttpServerOptions options = new HttpServerO

  • 创建 TCP 服务器 使用最简单的方法来创建一个 TCP 服务器,使用所有默认选项如下所示: NetServer server = vertx.createNetServer(); 配置 TCP 服务器 如果你不想默认值,可以将服务器配置通过传入一个NetServerOptions实例来创建它: NetServerOptions options = new NetServerOptions().s

  • 问题内容: 尽管这可能是Java Web Services的副本,但我想知道从哪里开始和继续。过去,我花了很多时间来找到从哪里开始,但我却没有。阅读有关Web服务的页面时,有很多术语和混乱(至少对我来说是如此!)。有很多术语- 例如Web Service和其他我不知道的术语。该用户组可以合并并提供易于理解和遵循的Java Web Services的高级概述吗?我感谢您的好意,并感谢您的帮助。 问题