【问题标题】:How do I start one service in docker-compose without checking for or starting any dependencies?如何在 docker-compose 中启动一项服务而不检查或启动任何依赖项?
【发布时间】:2017-08-02 03:57:15
【问题描述】:

我们在开发环境中使用 docker-compose 来启动所有服务。

有谁知道我是否可以使用 docker-compose 只启动一项服务而不检查依赖项是否正在运行(因为我知道它们正在运行)?

$ docker-compose -f docker-compose-service1.yml  up

它给出一个错误:错误:服务'service1'依赖于未定义的服务'service2'。

yml 文件类似于:

version: '2'
services:

  service1:
    build: ./service1
    dns: 192.168.1.100
    depends_on:
      - "service2"
    container_name: service1

我只想启动 service1,因为我知道所有依赖项都已在运行。

【问题讨论】:

  • 服务如何定义为相互依赖?这是depends_on 还是links
  • 如果其他服务正在运行,你想重启一个容器,可以使用docker-compose -f docker-compose.yml restart service1
  • @PressingOnAlways,yml 文件使用depends_on 来定义依赖关系。我更新了问题。
  • @Ayushya,您的解决方案效果很好。您为什么不将其发布为答案?

标签: docker docker-compose


【解决方案1】:

如果其他服务正在运行,而你只想重启一个,你可以使用

docker-compose -f docker-compose.yml restart service1

编辑:

关于错误:

错误:服务“service1”依赖于服务“service2”,即 未定义。

这是因为用于up 服务的docker-compose.yml 不被docker-compose 接受。首先编译 yml 文件(在我们的例子中是失败点),看看一切是否符合正确的语法,然后执行。

【讨论】:

  • @user674669 我已经通过解释您所看到的错误原因更新了答案,如果还有其他可以添加的内容来改进此答案,请告诉我。
  • 我只是想启动一项服务(而不是重新启动它),所以 docker compose -f docker-compose.ci.yml up db 完成了这项工作
猜你喜欢
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2016-07-02
相关资源
最近更新 更多