
[重要!] 如果您想在K8s集群上部署Dify,可以使用本文档。
Dify是一个LLM应用开发平台,已通过Dify.AI帮助创建了超过10万款应用。它结合了后端即服务(Backend as a Service)和LLM运维(LLMOps)的理念,涵盖了开发AI原生应用所需的核心技术栈,并内置了RAG引擎。通过Dify,您可以基于任意LLM独立部署类似Assistants API和GPTs的功能。
!https://github.com/langgenius/dify/raw/main/images/demo.png
api和worker使用同一镜像,只需通过MODE环境变量区分。
新版本是重大升级,因此如果您计划更新,请谨慎操作。它移除了旧的模型配置模式,取而代之的是基于插件的策略。此更改将需要对知识库和所有编排节点进行重大调整,尤其是那些使用向量模型、推理模型和排序模型的节点。
引入了新的插件服务来管理本地插件安装。现在插件负责扩展模型、代理和工具等功能。之前版本的所有默认模型设置已被移除,因此您需要在使用前自行安装所需插件。
此外,新版本支持流行的MCP协议,这是大模型生态系统中的关键技术。
2.1.1 api
Kubernetes YAML文件中的环境变量配置如下:
k8senv: - name: SECRET_KEY value: "MFnQ128032819024170983219038YYp5A" - name: CONSOLE_API_URL value: "https://dify-api.xxx.yyy" - name: CONSOLE_WEB_URL value: "https://dify-web.xxx.yyy" - name: SERVICE_API_URL value: "https://dify-api.xxx.yyy" - name: APP_WEB_URL value: "https://dify-web.xxx.yyy" - name: CELERY_BROKER_URL value: "redis://:[password]@[redis_host]:6379/1" - name: REDIS_HOST value: "redis" - name: REDIS_PORT value: 6379 - name: REDIS_PASSWORD value: "" - name: DB_USERNAME value: "" - name: DB_PASSWORD value: "" - name: DB_HOST value: "" - name: DB_PORT value: 5432 - name: DB_DATABASE value: "dify" - name: STORAGE_TYPE value: "aliyun-oss" - name: ALIYUN_OSS_ENDPOINT value: "" - name: ALIYUN_OSS_PATH value: "" - name: ALIYUN_OSS_BUCKET_NAME value: "" - name: ALIYUN_OSS_ACCESS_KEY value: "" - name: ALIYUN_OSS_SECRET_KEY value: "" - name: VECTOR_STORE value: "milvus" - name: MILVUS_HOST value: "my-release-milvus" - name: MILVUS_PORT value: 19530 value: "root" - name: MILVUS_PASSWORD value: "" - name: MILVUS_SECURE value: false - name: WEB_API_CORS_ALLOW_ORIGINS value: "*" - name: CONSOLE_CORS_ALLOW_ORIGINS value: "*" - name: MAIL_TYPE value: "resend" - name: MAIL_DEFAULT_SEND_FROM value: "" - name: RESEND_API_KEY value: "" - name: CODE_EXECUTION_ENDPOINT value: http://sandbox:8194 - name: CODE_EXECUTION_API_KEY value: "xYaiVMrBUtVppEv6N7cW" - name: CODE_MAX_NUMBER value: 9223372036854775807 - name: CODE_MIN_NUMBER value: -9223372036854775808 - name: CODE_MAX_DEPTH value: 5 - name: CODE_MAX_PRECISION value: 20 - name: CODE_MAX_STRING_LENGTH value: 80000 - name: TEMPLATE_TRANSFORM_MAX_LENGTH value: 80000 - name: CODE_MAX_STRING_ARRAY_LENGTH value: 30 - name: CODE_MAX_OBJECT_ARRAY_LENGTH value: 30 - name: CODE_MAX_NUMBER_ARRAY_LENGTH value: 1000 - name: TEMPLATE_TRANSFORM_MAX_LENGTH value: 80000 - name: PLUGIN_REMOTE_INSTALL_HOST value: "dify-plugin-daemon" - name: PLUGIN_REMOTE_INSTALL_PORT value: 5003 - name: PLUGIN_MAX_PACKAGE_SIZE value: 52428800 - name: INNER_API_KEY_FOR_PLUGIN value: "MFnQ128032819024170983219038YYp5A" - name: PLUGIN_DAEMON_KEY value: "6ovaezWAjpCjf+Sjc3ZtU+qUEi" - name: PLUGIN_DAEMON_URL value: "http://dify-plugin-daemon:5002"
SECRET_KEY - 用于安全签名会话cookie和加密数据库敏感信息的密钥。您可以使用openssl rand -base64 42生成强密钥。
CELERY_BROKER_URL - 使用Redis作为broker,Redis数据库1用于Celery broker。示例 - redis://:difyai***@redis:6379/1
[数据库示例] -
[Milvus示例] -
MILVUS_SECURE - 如果您的Milvus不需要密码,必须设置为false(重要!)
MAIL_TYPE - 支持resend或smtp,resend是一个在线邮件服务器,链接为[***]
STORAGE_TYPE - aliyun-oss时,需填写ALIYUN_OSS_ENDPOINT/ALIYUN_OSS_BUCKET_NAME/ALIYUN_OSS_ACCESS_KEY/ALIYUN_OSS_SECRET_KEY这些字段。
ALIYUN_OSS_PATH - 版本>=0.8.2时必须设置,这是根路径。
CODE_EXECUTION_ENDPOINT - 代码执行沙箱,如果为空,自定义代码执行节点将失败。
CODE_EXECUTION_API_KEY - 如果CODE_EXECUTION_ENDPOINT不为空,CODE_EXECUTION_API_KEY必须与dify-sandbox镜像的运行配置相同。
PLUGIN_REMOTE_INSTALL_HOST - 插件安装服务的主机,即插件安装服务运行的主机。
PLUGIN_REMOTE_INSTALL_PORT - 插件安装服务的端口,即插件安装服务运行的端口。
PLUGIN_MAX_PACKAGE_SIZE - 可安装的插件包最大大小,单位为字节。
INNER_API_KEY_FOR_PLUGIN - 安装插件时用于身份验证的API密钥,即K8s YAML中插件守护进程环境变量SERVER_KEY的值。
PLUGIN_DAEMON_KEY - 与插件守护进程通信时用于身份验证的密钥。
PLUGIN_DAEMON_URL - 插件守护进程的URL,用于与插件安装服务通信,可使用插件守护进程服务器的Kubernetes内部域名。
2.1.2 worker
Kubernetes YAML文件中的环境变量配置如下:
k8senv: - name: SECRET_KEY value: "MFnQ128032819024170983219038YYp5A" - name: CONSOLE_API_URL value: "https://dify-api.xxx.yyy" - name: CONSOLE_WEB_URL value: "https://dify-web.xxx.yyy" - name: SERVICE_API_URL value: "https://dify-api.xxx.yyy" - name: APP_WEB_URL value: "https://dify-web.xxx.yyy" - name: CELERY_BROKER_URL value: "redis://:[password]@[redis_host]:6379/1" - name: REDIS_HOST value: "redis" - name: REDIS_PORT value: 6379 - name: REDIS_PASSWORD value: "" - name: DB_USERNAME value: "" - name: DB_PASSWORD value: "" - name: DB_HOST value: "" - name: DB_PORT value: 5432 - name: DB_DATABASE value: "dify" - name: STORAGE_TYPE value: "aliyun-oss" - name: ALIYUN_OSS_ENDPOINT value: "" - name: ALIYUN_OSS_PATH value: "" - name: ALIYUN_OSS_BUCKET_NAME value: "" - name: ALIYUN_OSS_ACCESS_KEY value: "" - name: ALIYUN_OSS_SECRET_KEY value: "" - name: VECTOR_STORE value: "milvus" - name: MILVUS_HOST value: "my-release-milvus" - name: MILVUS_PORT value: 19530 - name: MILVUS_USER value: "root" - name: MILVUS_PASSWORD value: "" - name: MILVUS_SECURE value: false - name: WEB_API_CORS_ALLOW_ORIGINS value: "*" - name: CONSOLE_CORS_ALLOW_ORIGINS value: "*" - name: MAIL_TYPE value: "resend" - name: MAIL_DEFAULT_SEND_FROM value: "" - name: RESEND_API_KEY value: "" - name: MODE value: "worker" - name: LOG_LEVEL value: "INFO" - name: CODE_EXECUTION_ENDPOINT value: http://sandbox:8194 - name: CODE_EXECUTION_API_KEY value: "xYaiVMrBUtVppEv6N7cW" - name: CODE_MAX_NUMBER value: 9223372036854775807 - name: CODE_MIN_NUMBER value: -9223372036854775808 - name: CODE_MAX_DEPTH value: 5 - name: CODE_MAX_PRECISION value: 20 - name: CODE_MAX_STRING_LENGTH value: 80000 - name: TEMPLATE_TRANSFORM_MAX_LENGTH value: 80000 - name: CODE_MAX_STRING_ARRAY_LENGTH value: 30 - name: CODE_MAX_OBJECT_ARRAY_LENGTH value: 30 - name: CODE_MAX_NUMBER_ARRAY_LENGTH value: 1000 - name: TEMPLATE_TRANSFORM_MAX_LENGTH value: 80000000 - name: INNER_API_KEY_FOR_PLUGIN value: "MFnQ128032819024170983219038YYp5A"
2.1.3 plugin-daemon
使用此镜像运行plugin-daemon https://hub.docker.com/r/langgenius/dify-plugin-daemon%E3%80%82
建议使用最新版本的plugin-daemon镜像。
测试中version <= 0.0.6-local版本运行良好。
本地部署时,使用带有"local"后缀的版本。
Kubernetes YAML文件中的配置如下:
k8svolumeMounts: - name: dify-plugin-data mountPath: /app/storage
k8senv: - name: SERVER_PORT value: 5002 - name: SERVER_KEY value: "6ovaezWAjpCjf+Sjc3ZtU+qUEi" - name: GIN_MODE value: "release" - name: PLATFORM value: "local" - name: DIFY_INNER_API_KEY value: "MFnQ128032819024170983219038YYp5A" - name: DIFY_INNER_API_URL value: "http://dify-api:5001" - name: PLUGIN_REMOTE_INSTALLING_ENABLED value: true - name: PLUGIN_REMOTE_INSTALLING_HOST value: "0.0.0.0" - name: PLUGIN_REMOTE_INSTALLING_PORT value: "5003" - name: PLUGIN_STORAGE_TYPE value: "local" - name: PLUGIN_STORAGE_OSS_BUCKET value: "" - name: PLUGIN_STORAGE_LOCAL_ROOT value: "/app/storage" - name: PLUGIN_INSTALLED_PATH value: "/app/storage/plugin" - name: PLUGIN_WORKING_PATH value: "/app/storage/cwd" - name: PERSISTENCE_STORAGE_PATH value: "/app/storage/persistence" - name: PERSISTENCE_STORAGE_MAX_SIZE value: 104857600 - name: PLUGIN_WEBHOOK_ENABLED value: true - name: ROUTINE_POOL_SIZE value: 1024 - name: REDIS_HOST value: "redis" - name: REDIS_PORT value: 6379 - name: REDIS_PASSWORD value: "xxxx" - name: DB_USERNAME value: "dify" - name: DB_PASSWORD value: "xxx" - name: DB_HOST value: "xxxxxxx" - name: DB_PORT value: 5432 - name: DB_DATABASE value: "dify" - name: DIFY_INVOCATION_CONNECTION_IDLE_TIMEOUT value: 120 - name: MAX_PLUGIN_PACKAGE_SIZE value: 52428800 - name: PYTHON_ENV_INIT_TIMEOUT value: 120 - name: PPROF_ENABLED value: false - name: FORCE_VERIFYING_SIGNATURE value: true
以下是 henrybit/dify-api 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务