如何让 Docker Compose 等待依赖容器

x33g5p2x  于2022-08-17 转载在 Docker  
字(0.6k)|赞(0)|评价(0)|浏览(594)

Docker Compose允许您通过运行单个命令来启动多个容器。这简化了由几个独立组件组成的复杂服务的启动。

但这并不总是足够好。您的某些容器可能存在相互依赖关系,如果它们无法实现,则会破坏应用程序。在本指南中,我们将展示如何配置 Compose 服务以适应这些依赖项,从而可以按顺序启动容器。

基础知识

Docker Compose 支持文件中的depends_on字段docker.compose.yml。服务可以在depends_on. 这可以防止容器在依赖的服务启动之前启动。

services:
  api:
    image: example.com/api:latest
    depends_on:
      - db
  web-app:
    image: example.com/web-app:latest
    depends_on:
      - api
  db:
    image: mysql:8.0

在此示例中,这些depends_on字段导致服务按以下顺序启动:

  • db
  • api
  • web-app

每个服务的依赖关系都是递归解决的。定义每个depends_on字段的服务最后启动,在链的最末端。当一个服务依赖于多个其他容器时,它们将按照它们在depends_on字段中列出的顺序启动。

当您使用 停止堆栈时,服务链将反向使用docker-compose stop。在上面的例子中,web-app容器会先被删除,api然后db. 这可以防止对web-app容器的请求在拆卸操作开始时

相关文章

最新文章

更多