
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
[重要!] 如果您想在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 镜像,适用于 不同场景 等不同场景: