使用 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!