学习优先级:★★★★☆

易用性:★★★☆☆

启动数据库时,应通过依赖关系进行良好的协调,以确保服务能够正确通信。

以下是一个示例,展示了如何在 Docker Compose 中定义依赖关系,以确保数据库在其他服务之前启动。

示例代码

version: '3.8'

services:
  app:
    image: my_app_image
    depends_on:
      - db
    networks:
      - app_network

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    networks:
      - app_network

networks:
  app_network:
    driver: bridge

执行结果

运行此配置后,MySQL 数据库的 Docker 容器将首先启动,然后是应用程序。

在这个示例中,应用程序(app)配置为依赖数据库(db)。depends_on 确保数据库首先启动,然后应用程序尝试连接。这可以防止因连接不可用而导致的启动错误。

补充说明

depends_on 本身并不能保证数据库已准备好接受连接。因此,通常需要在应用程序中实现逻辑,确保它仅在数据库真正准备好时才尝试建立连接。