概述
本文介绍了在前后端分离开发场景下,部署 Dify 前端服务的两种 Docker 化方案。一是直接使用官方 DockerHub 镜像启动前端容器,支持最新版或指定版本,并配置后端 API 地址;二是通过源码本地构建自定义镜像后再启动。两种方法均通过环境变量配置控制台与应用的 API 连接,并提供了本地访问验证方式,适合后端开发者专注业务逻辑时快速启用前端界面。
一、直接使用 DockerHub 镜像
当单独开发后端时,可能只需要源码启动后端服务,而不需要本地构建前端代码并启动,因此可以直接通过拉取 docker 镜像并启动容器的方式来启动前端服务。
1.1 前置准备
确保后端服务已启动,通常运行在 http://127.0.0.1:5001。
1.2 使用 DockerHub 镜像启动前端 Docker 容器
获取最新版本:
docker run -it -p 3000:3000 -e CONSOLE_API_URL=http://127.0.0.1:5001 -e APP_API_URL=http://127.0.0.1:5001 langgenius/dify-web:latest
获取指定版本,可访问 langgenius/dify-web Tags | Docker Hub 查询。
docker run -it -p 3000:3000 -e CONSOLE_API_URL=http://127.0.0.1:5001 -e APP_API_URL=http://127.0.0.1:5001 langgenius/dify-web:1.4.3
二、使用源码构建 Docker 镜像
开发者首先需进入前端源码目录,使用 docker build 命令构建自定义镜像(例如命名为 dify-web),随后再以类似方式运行容器。该方案同样提供了灵活的环境变量配置,并特别说明当控制台与应用的访问域名不一致时,可通过 CONSOLE_API_URL 和 APP_API_URL 变量分别进行设置。
2.1 构建前端镜像
cd web && docker build . -t dify-web
2.2 启动前端镜像
docker run -it -p 3000:3000 -e CONSOLE_API_URL=http://127.0.0.1:5001 -e APP_API_URL=http://127.0.0.1:5001 dify-web
2.3 控制台域名设置
当控制台域名和 Web APP 域名不一致时,可单独设置 CONSOLE_API_URL 和 APP_API_URL。
2.4 本地访问
登录成功后即可使用前端界面。
三、总结
两种方案均将容器端口映射到主机的 3000 端口,启动后可通过访问 http://127.0.0.1:3000 来验证前端服务是否正常运行并登录。第一种方案以便捷性取胜,适合追求效率的标准开发流程;第二种方案则以构建的自主性和配置的灵活性见长。这两种互补的方案共同构成了一套实用工具箱,有效提升了 Dify 在前后端分离模式下的开发与部署效率。


