实战docker部署dify及注意点

实战docker部署dify及注意点

缘起

上上周,因工作原因被要求参加一个生成式AI的职业技能竞赛,实操就是dify工作流,所以想着自己搭建一个环境用于学习和测试。

部署

dify开源是提供了docker部署的所有配置文件的,只需要按照指引即可完成部署。

直接拉取dify的代码

bash 复制代码
git clone https://github.com/langgenius/dify.git

可以直接使用官方提供的配置文件启动:

bash 复制代码
cd dify
cd docker
cp .env.example .env
docker compose up -d

其实至此,dify已经启动了,访问80端口页面如下:

但是实际使用中可能存在3个问题:

  1. 文件夹权限导致上传文件报错

  2. 代码执行环节节点权限

  3. python代码是在沙箱执行的,可能缺少你需要的python库

注意点

文件夹权限

在此目录下,可以看到使用dify时候上传的文件:

这个是web docker容器的文件夹,查看web容器的dockerfile,查看构建文件:

所以必须修改宿主机文件夹的权限,如果是测试环境,还是直接给所有权限方便

bash 复制代码
chmod -R 777 dify/docker/volumes/app/storage

如果是生成环境,在宿主机上 chown -R 1001:1001 目标目录,然后在 docker run 时使用 -u 1001:1001 显式指定用户。

代码沙箱权限

沙箱权限配置目录在:

这里权限分为2个:

  1. 网络权限,就是代码能否访问网络

  2. 系统调用的权限

这里我也是习惯分成2部分:

如果是测试,直接都给了:

yaml 复制代码
allowed_syscalls: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,28,30,31,32,33,34,35,36,37,39,56,57,60,61,62,63,72,73,80,81,85,86,90,91,105,106,131,186,202,204,217,231,233,234,237,257,262,273,281,291,318,334,435,499]

如果是生产环境,给所有权限很容易导致安全文件,所以只给部分必须的权限。

什么叫必须的权限?就是都不给,然后要一个给一个。至于如何查哪个是必须的,可以通过官方的demo

bash 复制代码
https://github.com/langgenius/dify-sandbox

按照如下路径找到文件,修改 cmd/test/syscall_dig/test.py,在 main 函数中添加你的代码或导入语句

执行后会得到类似这种结果:

提示:

执行这个测试环境还是需要点环境的:

启动环境sandbox:

bash 复制代码
./build/build_amd64.sh
./main

默认启动的sanbox的uid是65537,这个有可能会根据你的环境导致异常:

如果你也遇到报错,改一下:

bash 复制代码
id sandbox
usermod -u 1001 sandbox

代码沙箱python库

这个步骤就是启动沙箱的时候,安装三方库:

小结

官方提供的启动和配置脚本,实际用起来,还是有不少磕碰,记录一下。

欢迎关注

实战docker部署dify及注意点

相关推荐
福建佰胜张工1 小时前
费希尔 FIELDVUE™ DVC6200-AC 智能阀门定位器深度解析:双作用配置、核心参数与典型应用
运维·安全·自动化
小羊没烦恼!1 小时前
分布式事务 | 使用DTM 的Saga 模式
java·linux·运维·数据库·wpf
上海运维Q先生1 小时前
PHP8.3.36升级修复手册----CVE-2026-109618 CVE-2026-109619
运维·php
NailiConveyor1 小时前
输送机机架怎么选材?碳钢、不锈钢、铝型材的成本与适用场景
大数据·运维·自动化·制造·业界资讯
骑着蜗牛撵大象3272 小时前
让 Codex 值夜班:把告警排查与巡检接成可回滚的自动化链路
android·java·运维·ai·自动化·codex·智能体
天远数科2 小时前
零信任架构实战:基于天远企业年报信息核验构建自动化供应商准入资质合规审查网关
运维·人工智能·架构·自动化
闲云自留地2 小时前
K8s Service 全解:服务发现、四种类型、会话保持、金丝雀发布一篇通
容器·kubernetes·服务发现
TangGeeA2 小时前
Control CLI Tutorial:用 aio 从终端控制 aiopsterm
运维·人工智能
VIP_CQCRE2 小时前
上线 AI 分站别一次改完:一套可回滚的配置与验收流程
运维·产品设计·ai工具·技术教程·acedatacloud