MacOS-12(Intel) Docker部署Dify1.11.1

  • 环境:

1.源码拉取

切换到~目录下进行git clone,如下:

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

2.切换到docker目录

复制代码
cd ~/dify/docker && ls -a -l
  • -a 可以将隐藏文件显示出来

  • 将.env.example复制一份到.env,后续可自定义配置各个中间件的port等

    cp .env.example .env

  • 查看.env文件内容10~40行之间的内容:

    sed -n '10,40p' .env

3.升级docker-compose至v2

  • 如果你的docker-compose是v1,建议升级到v2版本,不然无法正常启动dify,如下:

    docker-compose -v

  • 由于在部署dify前我升级了我的docker desktop(注意不要太高,太高的话自己的mac系统不一定能匹配上,地址:MacOS Docker Desktop历史版本列表),

4.使用docker-compose启动dify

  • 使用docker-compose 命令启动并运行容器,在~/dify/docker目录下执行如下命令:

    docker-compose up -d

  • 这里有个小tip:如果这里的镜像拉不下来一直提示 xxxx 连接超时的话(只要是国内,不管你是win、linux还是mac必中),有两种方式可以尝试,第一种就是上网搜一下docker的国内源,设置下看行不行(这个我已经试过了,效果很糟糕),第二种就是走proxy,比如本地或局域网的7890端口等(小黑cat,都知道的),操作见下图(由于我就是本地pull的,不用设置proxy,如果是独立的linux或者ubantu服务器的话,需要共享本地proxy的话,需要设置):
  • 拉取镜像
  • 启动镜像->容器运行
  • 基本上用docker部署dify就是傻瓜式操作,除了硬条件docker版本和网络环境以外,其余不需要操心什么,另外,之所以本地部署,一方面是很多资产数据都是私有化的,本地更安全,另一方面就是扩展自己的插件更方便。

5.查看容器启动情况

复制代码
docker ps -a
  • 熟悉的nginx、redis、postgres等,用的都是默认的端口,比如nginx的http端口80,https端口443,redis的6379和pg的5432等。

  • 如果你的docker在没跑dify之前已经运行了一个nginx:80的容器了该怎么办?或者宿主机上已经映射(暴露)了一个80的端口了又该怎么办? 因为这些会导致dify的最后一个容器docker-nginx-1启动失败,会提示诸如:"80 already used..."

  • 在章节2中我们复制了.env文件,其中我们可以修改nginx容器的端口,如下:

    ------------------------------

    Environment Variables for Nginx reverse proxy

    ------------------------------

    NGINX_SERVER_NAME=_
    NGINX_HTTPS_ENABLED=false

    HTTP port

    NGINX_PORT=80

    SSL settings are only applied when HTTPS_ENABLED is true

    NGINX_SSL_PORT=443

    if HTTPS_ENABLED is true, you're required to add your own SSL certificates/keys to the ./nginx/ssl directory

    and modify the env vars below accordingly.

    NGINX_SSL_CERT_FILENAME=dify.crt
    NGINX_SSL_CERT_KEY_FILENAME=dify.key
    NGINX_SSL_PROTOCOLS=TLSv1.2 TLSv1.3

    Nginx performance tuning

    NGINX_WORKER_PROCESSES=auto
    NGINX_CLIENT_MAX_BODY_SIZE=100M
    NGINX_KEEPALIVE_TIMEOUT=65
    ........... .............. ............... .................. ................

  • 另外在.env同级目录下有一个docker-compose.yaml文件,我们可以修改nginx容器暴露在宿主机上的端口号,如下:

    EXPOSE_NGINX_PORT: {EXPOSE_NGINX_PORT:-80} EXPOSE_NGINX_SSL_PORT: {EXPOSE_NGINX_SSL_PORT:-443}
    ........... .............. ............... .................. ................
    ports:
    - "{EXPOSE_NGINX_PORT:-80}:{NGINX_PORT:-80}"
    - "{EXPOSE_NGINX_SSL_PORT:-443}:{NGINX_SSL_PORT:-443}"

  • 有其他需求的,按照上述配置文件修订即可。

6.浏览器访问dify

  • 由于是80端口,直接浏览器输入:http://localhost即可.
  • 设置下管理员账户即可
  • 设置完成后,会跳转到工作室页面(团队·成员·资源共享),如果没用过coze和dify,一进来这个页面会有点懵。
  • 工作流 (Workflow): 专注于后端业务流程的自动化,适用于多步骤任务的编排和执行。它通过可视化画布定义流程逻辑,支持并行处理、延迟和循环等功能。工作流通常由系统触发或手动执行,强调流程的稳定性和可重复性。

  • Chatflow: 是构建聊天助手和 Agent 的核心工具,提供可视化的编排界面。开发者可以通过拖拽节点设计 AI 的行为逻辑,例如调用大语言模型、检索知识库或执行条件判断。Chatflow 是实现复杂对话逻辑的关键工具。

  • 聊天助手 (Chat Assistant) :专注于与用户进行多轮对话,能够记住上下文并提供流畅的交互体验。它适用于智能客服、虚拟助手等场景,支持知识库挂载以回答特定领域的问题。通过 Chatflow 可视化界面,开发者可以定义对话逻辑、开场白和变量,优化用户体验。

  • Agent (智能体) 是 Dify 中最强大的应用形态,具备自主规划和工具调用能力。它不仅能回答问题,还能通过调用 API、执行代码等完成复杂任务。Agent 适用于自动化业务流程、数据分析和任务处理等场景,支持配置工具如搜索引擎、数据库访问等,增强 AI 的执行能力。

  • 文本生成 (Text Generation):专注于一次性生成高质量的内容,例如广告文案、邮件撰写或摘要提取。用户通过填写变量触发 AI 输出结果,核心在于设计高质量的提示词 (Prompt)。它适合需要快速生成结构化或非结构化文本的场景。

7.dify配置

7.1 LLM供应商

  • 大语言模型是基石,而大语言模型非一家独大,有条件的都会自己搞,所以选择一个靠谱的LLM供应商是非常重要的。dify的插件市场简直🐂,太棒了,这里有条件的你可以用OpenAI,国内的用千问、百炼、火山或者深度求索,当然本地部署个人的话就用Ollma、追求高性能的就用Vllm等。

  • 这里以深度求索DeepSeek为例子,来安装下插件(插件的概念不是把模型下载到本地进行跑,而是安装对应llm的python库及工具,后续运行的话,还需要配置apikey)

  • 这里不得不要感慨下了,同样是做过前端的,人家dify产品(国人做的,起于2023年)做的是真好,什么产品概念,用户交互、扩展性等简直绝了。

  • 再回到模型供应商这里,设置下深度求索的apikey(DeepSeek开放平台),如下:

7.2 自定义MCP服务接入

  • 这个功能是非常哇塞的,话不多说,本地启动MCP服务
  • 注意地址要配置对,有时候需要多加个/不要丢了

相关推荐
眠りたいです3 小时前
Docker:认识Docker镜像仓库并进行拉取推送
运维·nginx·docker·容器·busybox
计算机小手3 小时前
使用轻量级中间件 VoidAuth 快速构建站点SSO,支持Docker一键部署与Nginx快速接入
经验分享·docker·中间件·开源软件
ByteBlossom3 小时前
Docker虚拟化技术实践
docker
风为你而吹4 小时前
mac m3上使用vscode + platformio开发esp32
ide·vscode·macos
weixin_462446234 小时前
【原创实践】使用 Docker 部署 IntelliJ IDEA(linuxserver/intellij-idea)完整指南
docker·容器·intellij-idea
qq_455760854 小时前
Docker - 镜像
linux·运维·docker
想做后端的小C4 小时前
Mac 环境下设置 idea 中的 tomcat 运行配置
macos·tomcat·intellij-idea
南山nash14 小时前
CentOs7 安装 Docker 详细步骤
linux·运维·docker·容器
杨浦老苏15 小时前
轻量级私有云音乐服务器QM-Music
docker·群晖·音乐