Ubuntu22.04 上 docker compose 部署 dify

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、前提条件

  • CPU:至少 2 个核心
  • 内存:至少 4GB

二、环境准备

1.更新系统软件包列表并升级系统

确保系统所有软件都是最新版本,执行以下命令

  sudo apt update
  sudo apt upgrade -y

说明: 这一步操作更新本地软件包列表并安装所有可用的安全更新,确保系统稳定和安全。

2.安装git

使用Git拉取代码仓库

  sudo apt install  git -y

说明:Git是必备工具,用于从GitHub上克隆Dify源码

3. 安装docker

1.更新软件包列表

  sudo apt update
  1. 安装Docker(docker.io包)
 sudo apt install docker.io

3.验证Docker安装

 docker-version

4.启动并设置Docker开机自启:

sudo systemctl start docker
sudo systemctl enable docker

4.安装Docker Compose

可以通过apt安装Docker Compose

  sudo apt install docker-compose

验证安装

 docker-compose --version

说明:Ubuntu官方源安装的Docker Compose版本可能较旧,如果需要最新版本,可以参考Docker Compose官方文档下载独立二进制文件。另外,新版本Docker也提供了Compose V2插件,使用命令格式为docker compose(中间带空格),请根据实际情况选择使用哪个版本。

三、克隆dify代码仓库

有两种方式获取Dify源码

1. 使用 Git 克隆

在终端执行以下命令,将 Dify 源码克隆至你希望存放的位置(建议放在 /opt 目录下):


sudo mkdir -p /opt/dify
sudo chown $USER:$USER /opt/dify
cd /opt/dify
git clone --branch 1.2.0 https://github.com/langgenius/dify.git

2. 使用压缩包上传

  • 在本地访问 Dify GitHub 并下载源码压缩包;

  • 将压缩包上传到服务器(例如使用 SCP 或 SFTP 工具);

  • 解压到 /opt/dify:

 sudo mkdir -p /opt/dify
 sudo tar -zxvf dify-xxx.tar.gz -C /opt/dify

根据压缩包实际名称调整命令。

四、配置环境变量

进入 Dify 代码仓库目录后,复制示例环境变量文件:

cd /opt/dify/dify
cp .env.example .env

编辑 .env 文件,根据你的部署需求调整以下关键变量:

  • DB_USERNAME、DB_PASSWORD、DB_HOST、DB_DATABASE:数据库相关配置

  • REDIS_PASSWORD:Redis 的访问密码

  • DIFY_PORT:API 服务绑定的端口(默认为 5001)

  • 其他你需要修改的变量(例如 OPENAI_API_BASE、LOG_LEVEL 等)

五、配置多个镜像源

1.编辑Docker配置文件

sudo nano /etc/docker/daemon.json

加入如下内容
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"https://registry.cn-hangzhou.aliyuncs.com"
]
}

保存并退出(在nano中按Ctrl+O 保存,Ctrl+X退出)

2.重载配置并重启Docker

  sudo systemctl daemon-reload 
  sudo systemctl restart docker

3. 验证加速器是否生效

  docker info

在输出中确保“Registry Mirrors” 列表中显示了上述地址。
在这里插入图片描述

六、启动 Docker Compose 部署 Dify

在 Dify 代码仓库根目录下(含 docker-compose.yaml 文件)执行

  • 如果使用 Docker Compose V2 插件(推荐)
  docker compose up -d
  • 如果使用老版本 Docker Compose
  docker-compose up -d 

说明:命令执行后,系统将依照 docker-compose.yaml 文件启动所有容器(包括 API、worker、web、db、redis、nginx、ssrf_proxy、sandbox 等)。
运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:

在这里插入图片描述

七、检查和验证部署状态

1. 查看容器状态

  docker compose ps

你应该能够看到类似以下的输出(部分):

  • api、worker、web:业务核心服务
  • db(Postgres)、redis:基础组件
  • nginx:反向代理
  • 其他组件如 ssrf_proxy、sandbox 等均显示状态为“Up”(健康状态)

在这里插入图片描述

2.查看容器日志(如需排查问题)

  docker compose logs -f

或针对特定服务查看日志

  docker compose logs -f nginx

3.测试内部访问

在服务器本机上执行:

  curl -I http://127.0.0.1

如果返回 HTTP 状态码(例如 200、301、307 等),说明 Nginx 和后端服务正常工作。
在这里插入图片描述

八、配置防火墙和云安全组

确保服务器对外开放了必需的端口:

  • 云安全组:登录云服务控制台,检查实例的安全组或防火墙规则,放行如下端口:
  TCP 80(HTTP)

  TCP 443(HTTPS,如果使用 SSL)
  • 本机防火墙(例如 ufw):

查看防火墙状态:

	sudo ufw status

放行端口 80 和 443(如果需要):

	sudo ufw allow 80/tcp
	sudo ufw allow 443/tcp

九、访问dify

1.通过 Nginx 反向代理访问

如果你使用了 Nginx 作为反向代理,且已设置端口映射(默认将宿主机的 80 映射到容器的 80 端口),则可在浏览器中直接访问:

	http://<你的服务器公网IP或域名>

若你配置了 HTTPS(以及相应证书),则访问:

	https://<你的服务器公网IP或域名>

2.管理员初始化页面

访问管理初始页面来设置管理员账号,通常访问地址为:

	http://<你的服务器公网IP或域名>/install

3.Dify 主页面

初始化完成后,访问

	http://<你的服务器公网IP或域名>

十、常见问题与排查建议

1.容器未启动/异常

  • 使用 docker compose ps 检查所有容器状态;
  • 若有容器反复重启或状态异常,使用 docker compose logs -f <服务名> 查看详细日志排查错误原因。

2.网络访问问题

  • 在服务器本机使用 curl -I http://127.0.0.1 确认服务正常;
  • 检查云安全组和本机防火墙配置,确保所需端口(80、443 等)已放行。

3.Docker 镜像拉取速度慢/失败

  • 检查 /etc/docker/daemon.json 中加速器设置是否正确,并使用 docker info 确认配置生效;
  • 如有需要,可尝试使用 VPN 或离线导入镜像。

4.环境变量配置问题

  • 确保 .env 文件中各项关键配置正确无误(数据库、Redis、API 服务、日志等),参考 Dify 官方文档调整各项参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值