使用 Docker 部署 Directus 并连接到外部数据库

在这篇文章中,我们将讨论如何使用 Docker 部署 Directus,并将其与外部数据库连接。通过以下步骤,你将能够设置 Directus 服务并确保它能够正常与外部数据库工作。

步骤概览

步骤 描述
1 安装 Docker 和 Docker Compose
2 设置外部数据库(如 MySQL)
3 创建 Docker Compose 文件
4 启动 Directus 服务并连接数据库
5 访问 Directus 面板

步骤详解

1. 安装 Docker 和 Docker Compose

首先,确保你的系统上安装了 Docker 和 Docker Compose。你可以通过以下命令检查是否已安装:

docker --version  # 检查 Docker 版本
docker-compose --version  # 检查 Docker Compose 版本

如果没有安装,请参考[Docker 官方文档]( 和 [Docker Compose 官方文档](

2. 设置外部数据库(如 MySQL)

为了让 Directus 提供数据服务,我们需要一个外部数据库。在这里,我们将以 MySQL 为例。你需要确保 MySQL 已安装,并创建一个数据库(例如,directus_db),以及一个用户(例如,directus_user):

CREATE DATABASE directus_db;  -- 创建数据库
CREATE USER 'directus_user'@'%' IDENTIFIED BY 'your_password'; -- 创建用户
GRANT ALL PRIVILEGES ON directus_db.* TO 'directus_user'@'%'; -- 授权
FLUSH PRIVILEGES; -- 刷新权限

注意: 请将 your_password 替换为一个强密码。

3. 创建 Docker Compose 文件

现在我们需要创建一个 Docker Compose 文件,命名为 docker-compose.yml。此文件将定义 Directus 的服务及其配置。

version: '3.8'
services:
  directus:
    image: directus/directus
    restart: always
    ports:
      - '8055:8055'  # 将容器的8055端口映射到主机的8055端口
    environment:
      DIRECTUS_DATABASE_HOST: 'your_database_host'  # 你的数据库地址
      DIRECTUS_DATABASE_PORT: 3306  # MySQL 默认端口
      DIRECTUS_DATABASE_USERNAME: 'directus_user'  # 数据库用户
      DIRECTUS_DATABASE_PASSWORD: 'your_password'  # 用户密码
      DIRECTUS_DATABASE_DATABASE: 'directus_db'  # 数据库名
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password  # MySQL 根用户密码
      MYSQL_DATABASE: directus_db  # 初始化数据库名
      MYSQL_USER: directus_user  # 数据库用户
      MYSQL_PASSWORD: your_password  # 用户密码
    ports:
      - '3306:3306'  # 映射数据库端口

注意: 将 your_database_host 替换为能访问你的外部数据库的主机地址(如 IP 地址或主机名),并确保数据库能够从 Docker 环境访问。如果你的数据库在本地,则可以使用 host.docker.internal

4. 启动 Directus 服务并连接数据库

在终端中,导航到包含 docker-compose.yml 文件的目录并运行以下命令:

docker-compose up -d  # 在后台启动服务

此命令将会下载必要的 Docker 镜像并启动服务。可以通过以下命令查看当前的运行状态:

docker-compose ps  # 查看服务状态

如果不想在后台运行,可以使用 docker-compose up 命令直接运行,这样可以看到所有日志信息。

5. 访问 Directus 面板

当 Directus 和 MySQL 服务成功启动后,你可以在浏览器中访问 Directus 面板,URL 为:

http://localhost:8055

在首次访问时,你可能需要创建管理员账户并配置数据库。如果连接成功,Directus 会引导你完成后续步骤。

序列图

以下是 Directus 服务在 Docker 中与外部数据库交互的序列图:

sequenceDiagram
    participant User
    participant Directus
    participant MySQL

    User->>Directus: 访问管理面板
    Directus->>MySQL: 连接数据库
    MySQL->>Directus: 返回连接成功
    Directus->>User: 显示管理面板

结尾

经过以上步骤,你已经成功在 Docker 中部署了 Directus,并连接到外部数据库。接下来,你可以使用 Directus 提供的 API 和管理面板,将其与您的应用程序集成。需要注意的是,在生产环境中使用时,要确保安全性设置恰当,并妥善管理数据库访问权限。

如果在安装或使用过程中遇到问题,可以参考官方文档或寻求社区的帮助。希望这篇文章能帮助你更好地理解和使用 Directus!