欢迎光临
我们一直在努力

2026 最新:Dify 本地 Docker 部署完整教程(Windows + Git Bash)

> 适用版本:Dify 1.16.x(本文以 langgenius/dify-web:1.16.0-rc1 为参考)

> 环境:Windows 10/11 + Docker Desktop + Git Bash

> 最终访问地址示例:http://localhost:8080

本文以「能跑通」为目标,走官方 Docker Compose 路线,不额外加 /dify 子路径,不另起自定义反向代理。后面若要改端口或对外访问,见同系列第二篇。


一、你最终会得到什么

启动成功后,浏览器访问:

http://localhost:8080

首次访问通常会 跳转到/install,进入初始化管理员账号页面。这是正常现象,不是报错。

一套最小可用栈一般包括:

组件作用
web 前端(Next.js)
api / worker 后端与异步任务
nginx 统一入口(默认映射到宿主机 8085)
db_postgres PostgreSQL 业务库
weaviate 向量库(知识库检索)
redis 缓存 / 队列

二、前置条件

  • 已安装并启动 Docker Desktop
  • 建议可用内存 ≥ 8GB(知识库 + 向量库会吃内存)
  • 已安装 Git(用 Git Bash 操作更方便)
  • 端口 8080、443、5003 未被占用
  • 检查 Docker:

    docker version
    docker compose version


    三、获取代码并进入正确目录

    cd /d/Dify # 按你实际磁盘路径调整
    # 若还没有源码:
    # git clone https://github.com/langgenius/dify.git
    cd /d/Dify/dify/docker

    关键坑:

    docker compose 必须在包含 docker-compose.yaml 的目录执行。

    在 /d/Dify 根目录执行会报:

    no configuration file provided: not found

    正确目录是:

    …/dify/docker


    四、配置 .env

    首次部署复制示例配置:

    cp .env.example .env
    # Windows 也可用:
    # cp .env.example .env

    用编辑器打开 .env,确认下面几项(本地访问够用):

    CONSOLE_API_URL=http://localhost:8080
    CONSOLE_WEB_URL=http://localhost:8080
    APP_API_URL=http://localhost:8080
    APP_WEB_URL=http://localhost:8080
    SERVER_CONSOLE_API_URL=http://api:5001
    EXPOSE_NGINX_PORT=8080
    EXPOSE_NGINX_SSL_PORT=443
    DB_TYPE=postgresql
    VECTOR_STORE=weaviate

    说明:

    • CONSOLE_* / APP_* 给浏览器用,必须是你本机能打开的地址
    • SERVER_CONSOLE_API_URL 给容器内 SSR用,应走 Docker 服务名 api:5001
    • 不要手动设置 NEXT_PUBLIC_BASE_PATH=/dify(本地直连根路径不需要)

    数据库账号密码默认一般是:

    DB_USERNAME=postgres
    DB_PASSWORD=difyai123456
    DB_HOST=db_postgres
    DB_PORT=5432
    DB_DATABASE=dify

    生产环境务必改强密码。


    五、启动服务(最容易踩坑的一步)

    正确启动方式

    cd /d/Dify/dify/docker
    推荐:显式打开数据库、向量库、协作相关 profile
    docker compose –profile postgresql –profile weaviate –profile collaboration up -d

    若 .env 中已配置:

    COMPOSE_PROFILES=weaviate,postgresql,collaboration

    也可简化为:

    docker compose up -d

    错误示范:–profile core

    很多旧教程写:

    docker compose –profile core up -d

    在新版 compose 里,不一定存在名为 core 的 profile。

    结果是:web/api/nginx 起来了,但 PostgreSQL、Weaviate 没启动。

    表现:

    • 访问 http://localhost:8080 → 500 / 502
    • API 日志出现:could not translate host name "db_postgres"
    • web 日志:ECONNREFUSED …:5001 或 Internal Server Error

    这不是「再改 Nginx 就能修好」的问题,而是缺数据库。


    六、确认容器状态

    cd /d/Dify/dify/docker
    docker compose ps

    重点看:

    • docker-api-1:healthy
    • docker-db_postgres-1:healthy
    • docker-web-1、docker-nginx-1:Up
    • docker-weaviate-1:Up

    再测入口:

    curl -I http://localhost:8085/

    期望类似:

    HTTP/1.1 307 Temporary Redirect
    location: /install

    或直接 200。出现 502 Bad Gateway 时,多半是 nginx 已启动但 web/api 还没就绪,等 10~30 秒再试;若持续 502,执行:

    docker compose up -d –force-recreate nginx web api


    七、浏览器访问与初始化

  • 打开 无痕窗口(避免旧重定向缓存)
  • 访问:http://localhost:8080
  • 在 /install 创建管理员账号
  • 登录后进入工作室,即可创建应用、配置知识库

  • 八、常用运维命令

    查看日志:

    docker compose logs web –tail 50
    docker compose logs api –tail 50
    docker compose logs nginx –tail 50

    重启:

    docker compose restart

    停止(保留数据卷):

    docker compose down

    更新镜像后重建:

    docker compose pull
    docker compose up -d


    九、Windows / Git Bash 特别注意

    1. 进容器请用 winpty + 双斜杠

    # 容易失败
    docker exec -it docker-web-1 /bin/sh
    推荐
    winpty docker exec -it docker-web-1 //bin/sh

    原因:Git Bash 会把 /bin/sh 映射成 Windows 路径。

    2. 不要用 docker run 顶掉 compose 的 docker-web-1

    例如:

    docker run -d –name docker-web-1 … langgenius/dify-web:…

    这会:

    • 丢掉 compose 注入的整套环境变量
    • 后续 docker compose up 报 容器名 Conflict
    • Nginx 仍缓存旧 upstream IP,出现假 502

    正确做法永远是:

    docker compose up -d –force-recreate web

    3. 慎用 /dify 子路径

    本地知识库场景直接用根路径 http://localhost:8080 即可。

    强行 NEXT_PUBLIC_BASE_PATH=/dify + Nginx 补斜杠,很容易出现重定向循环(另文详解)。


    十、验收清单

    • [ ] 目录在 dify/docker
    • [ ] .env 中浏览器 URL 为 http://localhost:8080
    • [ ] 已启用 postgresql + weaviate profile
    • [ ] docker compose ps 能看到 postgres / weaviate
    • [ ] curl -I http://localhost:8085/ 不是 404 No Found/循环重定向
    • [ ] 无痕模式能打开安装或登录页

    小结

    2026 年在 Windows 上本地部署 Dify,核心就三句:

  • 进对目录:dify/docker
  • 开对 profile:至少 postgresql + weaviate
  • 走官方 nginx 入口:http://localhost:8080,先别折腾自定义 /dify 代理
  • 赞(0)
    未经允许不得转载:171主机测评 » 2026 最新:Dify 本地 Docker 部署完整教程(Windows + Git Bash)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址