前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Docker在OpenEuler服务器配置Dify

使用Docker在OpenEuler服务器配置Dify

原创
作者头像
happywei
修改于 2025-05-19 02:29:55
修改于 2025-05-19 02:29:55
19400
代码可运行
举报
运行总次数:0
代码可运行

Dify的部署

下载文件

代码语言:bash
AI代码解释
复制
git clone https://github.com/langgenius/dify.git
cd dify/docker

配置环境

代码语言:bash
AI代码解释
复制
cp .env.example .env

启动服务 如果你使用的是Docker Compose V2:

代码语言:bash
AI代码解释
复制
docker compose up -d

如果你使用的是Docker Compose V1:

代码语言:bash
AI代码解释
复制
docker-compose up -d
代码语言:txt
AI代码解释
复制
(llm) [root@localhost docker]# docker-compose up -d
[+] Running 48/81
[+] Running 81/81] Pulling                                                                                                    541.3s 
 ✔ db Pulled                                                                                                                  705.7s 
 ✔ sandbox Pulled                                                                                                             183.5s 
 ✔ weaviate Pulled                                                                                                            541.9s 
 ✔ redis Pulled                                                                                                               558.6s 
 ✔ api Pulled                                                                                                                 750.7s 
 ✔ ssrf_proxy Pulled                                                                                                          516.2s 
 ✔ worker Pulled                                                                                                              750.7s 
 ✔ web Pulled                                                                                                                 237.9s 
 ✔ plugin_daemon Pulled                                                                                                       629.4s 
 ✔ nginx Pulled                                                                                                               620.8s 
WARN[0751] Found orphan containers ([ragflow-es-01 ragflow-mysql]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up. 
[+] Running 13/13
 ✔ Network docker_default             Created                                                                                   0.1s 
 ✔ Network docker_ssrf_proxy_network  Created                                                                                   0.0s 
 ✔ Container docker-weaviate-1        Started                                                                                   2.9s 
 ✔ Container docker-ssrf_proxy-1      Started                                                                                   3.6s 
 ✔ Container docker-db-1              Healthy                                                                                   6.1s 
 ✔ Container ragflow-redis            Recreated                                                                                 2.4s 
 ✔ Container docker-web-1             Started                                                                                   3.6s 
 ✔ Container docker-sandbox-1         Started                                                                                   2.9s 
 ✔ Container docker-plugin_daemon-1   Started                                                                                   4.4s 
 ✔ Container docker-worker-1          Started                                                                                   4.5s 
 ✔ Container docker-api-1             Started                                                                                   4.4s 
 ✔ Container docker-nginx-1           Started                                                                                   4.7s 
 ✔ Container docker-redis-1           Started                                                                                   1.1s 

检查服务状态:

代码语言:bash
AI代码解释
复制
docker compose ps

所有容器都应该显示 Up 状态

代码语言:txt
AI代码解释
复制
NAME                     IMAGE                                       COMMAND                   SERVICE         CREATED          STATUS                    PORTS
docker-api-1             langgenius/dify-api:1.3.1                   "/bin/bash /entrypoi…"   api             17 minutes ago   Up 17 minutes             5001/tcp
docker-db-1              postgres:15-alpine                          "docker-entrypoint.s…"   db              17 minutes ago   Up 17 minutes (healthy)   5432/tcp
docker-nginx-1           nginx:latest                                "sh -c 'cp /docker-e…"   nginx           17 minutes ago   Up 17 minutes             0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp
docker-plugin_daemon-1   langgenius/dify-plugin-daemon:0.0.9-local   "/bin/bash -c /app/e…"   plugin_daemon   17 minutes ago   Up 17 minutes             0.0.0.0:5003->5003/tcp, [::]:5003->5003/tcp
docker-redis-1           redis:6-alpine                              "docker-entrypoint.s…"   redis           17 minutes ago   Up 17 minutes (healthy)   6379/tcp
docker-sandbox-1         langgenius/dify-sandbox:0.2.11              "/main"                   sandbox         17 minutes ago   Up 17 minutes (healthy)   
docker-ssrf_proxy-1      ubuntu/squid:latest                         "sh -c 'cp /docker-e…"   ssrf_proxy      17 minutes ago   Up 17 minutes             3128/tcp
docker-weaviate-1        semitechnologies/weaviate:1.19.0            "/bin/weaviate --hos…"   weaviate        17 minutes ago   Up 17 minutes             
docker-web-1             langgenius/dify-web:1.3.1                   "/bin/sh ./entrypoin…"   web             17 minutes ago   Up 17 minutes             3000/tcp
docker-worker-1          langgenius/dify-api:1.3.1                   "/bin/bash /entrypoi…"   worker          17 minutes ago   Up 17 minutes             5001/tcp
ragflow-es-01            elasticsearch:8.11.3                        "/bin/tini -- /usr/l…"   es01            22 hours ago     Up 30 minutes (healthy)   9300/tcp, 0.0.0.0:1200->9200/tcp, [::]:1200->9200/tcp

通过本机访问服务器端部署的Dify

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Local environment
http://localhost/install

# Server environment -http://10.213.120.228/install
http://your_server_ip/install

Ollama的部署

查看docker状态并启动docker

代码语言:bash
AI代码解释
复制
systemctl status docker
systemctl start docker

安装ollama

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d -v /qjp/software/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

进入 Docker 容器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker exec -it ollama bash

下载模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ollama run qwen3:32b

都安装好之后

dify基础配置:打开.env文件,配置以下关键参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CONSOLE_URL=http://localhost
SERVICE_API_URL=http://localhost
UPLOAD_FILE_SIZE_LIMIT=50 # 文件上传限制,单位MB
UPLOAD_FILE_MIME_TYPES=.pdf,.doc,.docx,.txt # 允许上传的文件类型

配置模型

配置好之后,问题也出现了,反应速度极慢

如果 Ollama 没启用 GPU,会走 CPU 推理

猜想可能是Ollama 官方暂不原生支持昇腾Ascend/NPU。

验证猜想,确实是纯cpu在推理

代码语言:bash
AI代码解释
复制
(llm) [root@localhost ~]# docker logs ollama
load_tensors:          CPU model buffer size =   492.75 MiB
llama_context: constructing llama_context
llama_context: n_ctx_per_seq (4096) < n_ctx_train (40960) -- the full capacity of the model will not be utilized
llama_context:        CPU  output buffer size =     1.17 MiB
init: kv_size = 8192, offload = 1, type_k = 'f16', type_v = 'f16', n_layer = 28, can_shift = 1
init:        CPU KV buffer size =   896.00 MiB
llama_context: KV self size  =  896.00 MiB, K (f16):  448.00 MiB, V (f16):  448.00 MiB
llama_context:        CPU compute buffer size =   300.75 MiB

GPUStack的部署

换个思维,获取gpustack/gpustack:latest-npu镜像。

代码语言:bash
AI代码解释
复制
docker pull gpustack/gpustack:latest-npu

创建容器

代码语言:bash
AI代码解释
复制
docker run -d --name gpustack \
--shm-size=16g \
--privileged=true \
--restart=always \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
-v /usr/local/sbin/:/usr/local/sbin/ \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
--network=host \
--ipc=host \
-v /data:/var/lib/gpustack \
gpustack/gpustack:latest-npu
# 其中-v /data:/var/lib/gpustack是将物理机的/data挂载到容器/var/lib/gpustack目录下

检查容器是否正常运行

代码语言:bash
AI代码解释
复制
docker logs -f gpustack

在浏览器中打开 http://服务器IP 以访问 GPUStack UI

使用用户名 admin 和默认密码登录 GPUStack。可以运行以下命令来获取默认设置的密码:

代码语言:bash
AI代码解释
复制
docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password

尝试之后,最后结果就是dify和gpustack端口冲突问题,都需要访问80端口才能进入web,经过许多次创建容器时候设置端口映射,但都无法通过http://10.213.120.228:8090访问gpustack,放弃。

VLLM插件的部署

1.在dify中添加vllm插件

2.后台运行模型,开放正确的端口:8000

代码语言:bash
AI代码解释
复制
cd /data01/downloadModel/Qwen

vllm serve Qwen3-0.6B --port 8000 --enable-reasoning --reasoning-parser deepseek_r1

3. 第一步第二步成功之后,才能设置正确的模型名称和API endpoint URL,否则dify会报错:

代码语言:bash
AI代码解释
复制
An error occurred during credentials validation: HTTPConnectionPool(host='10.213.120.228', port=8000): 
Max retries exceeded with url: /v1/chat/completions (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xffff98d1cc20>: 
Failed to establish a new connection: [Errno 111] Connection refused')) 

成功配置

服务重启操作

dify容器异常时,可以通过以下命令重启服务(不会删除本地数据): 停止服务

代码语言:bash
AI代码解释
复制
cd dify/docker
docker-compose down
代码语言:bash
AI代码解释
复制
#重新启动dify服务
cd dify/docker
docker-compose up -d

现可在浏览器成功访问http://10.213.120.228

附:docker指令

1. 基础命令

  • docker pull <image>: 从 Docker Hub 拉取镜像。
  • docker create <image>: 从镜像创建容器。
  • docker start <container_name/container_id>: 启动容器。
  • docker stop <container_name/container_id>: 停止容器。
  • docker kill <container_name/container_id>: 强制停止容器的入口进程。
  • docker rm <container_name/container_id>: 删除容器。
  • docker ps: 列出所有运行中的容器。
  • docker ps -a: 列出所有容器。

2. 高级命令

  • docker run --name <container_name> -p <host_port>:<container_port> <image>: 拉取、创建、启动并运行容器。
  • docker run -d <image>: 在分离模式下运行容器。
  • docker run -e <key>=<value> <image>: 设置环境变量并运行容器。
  • docker run -it <image> <command>: 运行容器并覆盖默认命令。
  • docker run -it --entrypoint <entrypoint_command> <image>: 运行容器并覆盖默认入口点。

3. 管理命令

  • docker inspect <container_name>: 获取容器详细信息。
  • docker exec -it <image_name> <command>: 在运行中的容器内执行命令。
  • docker volume ls: 列出所有卷。
  • docker network create <network_name>: 创建用户定义的网络。
  • docker build <path>: 构建 Docker 镜像。
  • docker tag <image_name> <company>/<new_image_name>:<version>: 为镜像添加标签。
  • docker push <company>/<new_image_name>:<version>: 推送镜像到仓库。

4. 清理命令

  • docker stop $(docker ps -a -q): 停止所有容器。
  • docker rm $(docker ps -a -q): 删除所有容器。
  • docker image rm $(docker image ls -q): 删除所有镜像。

Docker Compose 命令整理

1. 构建和管理服务

  • docker compose build: 构建 Docker Compose 的所有服务。
  • docker compose create: 创建服务。
  • docker compose start: 启动服务。
  • docker compose restart: 重启服务。
  • docker compose pause: 暂停服务。
  • docker compose unpause: 恢复服务。

2. 运行和停止服务

  • docker compose run: 在服务中运行命令。
  • docker compose stop: 停止服务。
  • docker compose rm: 移除已停止的容器。
  • docker compose up: 创建并启动容器。
  • docker compose down: 停止并移除容器。

3. 日志和监控

  • docker compose logs -f --tail <lines_count>: 打印并监控所有服务的日志。

4. 扩展和更新

  • docker compose up --scale <service>=<count>: 创建、启动容器并扩展服务数量。
  • docker compose pull: 拉取所有服务的镜像,常用于更新服务镜像。

reference:

https://blog.csdn.net/2201_75299183/article/details/145954317

https://mp.weixin.qq.com/s?__biz=MzIzMzQyMzUzNw==&mid=2247488132&idx=1&sn=b167ef534c5228021033246b9719e38c&scene=21#wechat_redirect

https://blog.csdn.net/u014796292/article/details/147694085

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
苹果公司接连传出“坏消息” | Swift 周报 issue 70
本期是 Swift 编辑组自主整理周报的第七十期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2025/03/13
1680
苹果公司接连传出“坏消息” | Swift 周报 issue 70
Swift 周报 第十二期
本期是 Swift 编辑组自主整理周报的第三期,每个模块还在调整磨合期。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2022/12/12
2.7K0
Swift 周报 第十二期
苹果被起诉!市值一夜蒸发8000亿元 | Swift 周报 issue 50
本期是 Swift 编辑组自主整理周报的第五十期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/07/01
2420
苹果被起诉!市值一夜蒸发8000亿元 | Swift 周报 issue 50
苹果希望在中国推出 AI 功能 | Swift 周报 issue 68
本期是 Swift 编辑组自主整理周报的第五十期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/12/24
2600
苹果希望在中国推出 AI 功能 | Swift 周报 issue 68
Swift 周报 第十一期
本期是 Swift 编辑组自主整理周报的第二期,每个模块还在调整磨合期。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2022/12/12
1.1K0
Swift 周报 第十一期
iOS 19 的设计大更新 | Swift 周报 issue 73
本期是 Swift 编辑组自主整理周报的第七十三期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2025/04/03
2260
iOS 19 的设计大更新 | Swift 周报 issue 73
苹果 iPhone SE 4 售价曝光 | Swift 周报 issue 54
本期是 Swift 编辑组自主整理周报的第五十四期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/07/20
2620
苹果 iPhone SE 4 售价曝光 | Swift 周报 issue 54
库克减持苹果,套现2.4亿元 | Swift 周报 issue 51
本期是 Swift 编辑组自主整理周报的第五十一期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/07/04
2700
库克减持苹果,套现2.4亿元 | Swift 周报 issue 51
苹果最大投资,特朗普专门感谢 | Swift 周报 issue 72
本期是 Swift 编辑组自主整理周报的第七十二期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2025/03/29
1610
苹果最大投资,特朗普专门感谢 | Swift 周报 issue 72
iPhone 激活量跌至六年来新低 | Swift 周报 issue 52
本期是 Swift 编辑组自主整理周报的第五十二期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/07/07
3350
iPhone 激活量跌至六年来新低 | Swift 周报 issue 52
苹果将为 Apple Watch X 铺路 | Swift 周报 issue 45
本期是 Swift 编辑组整理周报的第四十五期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/06/17
2500
苹果将为 Apple Watch X 铺路 | Swift 周报 issue 45
iPhone 16 或将配备可拆卸电池 | Swift 周报 issue 57
本期是 Swift 编辑组自主整理周报的第五十七期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/07/27
3280
iPhone 16 或将配备可拆卸电池 | Swift 周报 issue 57
苹果仍在研发更大尺寸的 iMac | Swift 周报 issue 60
本期是 Swift 编辑组自主整理周报的第六十期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/09/17
4130
苹果仍在研发更大尺寸的 iMac | Swift 周报 issue 60
苹果公司将致力于在华长期发展 | Swift 周报 issue 64
文章链接:https://cloud.tencent.com/developer/article/2465737
Swift社区
2024/11/15
2310
苹果公司将致力于在华长期发展 | Swift 周报 issue 64
苹果首款大折叠屏手机打样中 | Swift 周报 issue 71
本期是 Swift 编辑组自主整理周报的第七十一期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2025/03/25
1430
苹果首款大折叠屏手机打样中 | Swift 周报 issue 71
Apple 新品发布会亮点有哪些 | Swift 周报 issue 61
本期是 Swift 编辑组自主整理周报的第六十一期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/09/20
1930
Apple 新品发布会亮点有哪些 | Swift 周报 issue 61
Swift 周报 第三十八期
本期是 Swift 编辑组整理周报的第三十八期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2023/09/25
3870
Swift 周报 第三十八期
Vision Pro 有望 2 月上市| Swift 周报 issue 44
本期是 Swift 编辑组整理周报的第四十四期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift社区
2024/06/15
1750
Vision Pro 有望 2 月上市| Swift 周报 issue 44
苹果增加投资欲解除 iPhone16 封杀令 | Swift 周报 issue 66
文章链接:https://cloud.tencent.com/developer/article/2469020
Swift社区
2024/11/26
2570
苹果增加投资欲解除 iPhone16 封杀令 | Swift 周报 issue 66
苹果斥资15亿美元加码卫星通讯 | Swift 周报 issue 65
文章链接:https://cloud.tencent.com/developer/article/2465737
Swift社区
2024/11/16
1970
苹果斥资15亿美元加码卫星通讯 | Swift 周报 issue 65
推荐阅读
相关推荐
苹果公司接连传出“坏消息” | Swift 周报 issue 70
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验