Dify 二开及部署简要

163 阅读2分钟

Dify 二开及部署

本文是演示本地二开dify,然后打包、推送镜像、部署服务器,如果直接在服务器上打包,那直接省掉部署的步骤。

演示环境

  • Window@10 专业版
  • Node.js@22
  • Docker@25.0.3
  • WSL@2.4.12.0
  • Ubuntu@20.04.6 LTS
  • Dify@1.0.0

修改本地配置

  1. 修改官方镜像引用为本地服务地址:

位置:docker/docker-compose.yaml

把镜像配置改为服务相对路径,以改apiweb服务为例:

  • image: langgenius/dify-api:1.0.0改为
build:
  context: ../api
  args:
    TAG: ${API_TAG}
image: harbor.xxx/xxx-ai-uat/xxx-ai-api:${API_TAG}
  • image: langgenius/dify-web:1.0.0改为
build:
  # 如果前端代码抽出来了,那就改相对路径
  context: ../web
  args:
    TAG: ${WEB_TAG}
  image: harbor.xxx/xxx-ai-uat/xxx-ai-web:${WEB_TAG}
  1. 修改nginx端口

默认是80,如果没冲突可以不改

  • 复制一份docker\.env.example,改名为.env,修改变量NGINX_PORTEXPOSE_NGINX_PORT

构建 docker build

cd docker # 进入目录
# 构建(Ubuntu执行,如果是window powershell可能要把tag去掉:docker compose build,到时候手动改yaml的tag)
API_TAG=202503151345 WEB_TAG=202503151345 docker compose build
docker compose down # 停止并移除docker-compose管理的容器、网络、卷和镜像
API_TAG=202503151345 WEB_TAG=202503151345 docker compose up -d # 更新镜像
docker logs -f docker-api-1 # 启动镜像docker-api-1(代码的修改生效,本地跑),并打印日志

部署

推镜像

# 手动改镜像tag(build没设置tag时)
# docker tag docker-web:latest harbor.xxx/xxx-ai-uat/xxx-ai-web:202503151345

# 推送镜像
docker push harbor.xxx/xxx-ai-uat/xxx-ai-api:${API_TAG}
docker push harbor.xxx/xxx-ai-uat/xxx-ai-web:${WEB_TAG}

进入服务器更新镜像

  1. cd 进 docker 文件夹,备份原有的docker-compose.yaml文件并上传新的 yaml;
  2. 执行WEB_TAG=202503151345 docker compose down
  3. 执行docker compose up -d

大功告成!