Dify0.15.3学习01_使用docker-compose部署

一、参考文档

https://github.com/langgenius/dify/tree/0.15.3

https://github.com/langgenius/dify/tree/0.15.3/docker

二、环境与规划

主机名 用途 IP root用户密码 规格 系统盘 OS 备注
dify dify、ai-to-pptx-backend 10.12.62.32 cloud@2020 8c16g 500G Ubuntu 22.04.3 LTS-amd64 联网

此文档使用docker-compose的方式来部署dify

三、部署步骤

3.1 下载安装源码

1
2
3
4
root@dify:~# mkdir /opt/code_repos
root@dify:~# cd /opt/code_repos/
#如果太慢或一直拉取失败就先导入到gitee中再拉取(git clone -b 0.15.3 https://gitee.com/sy-jiang/dify.git)
root@dify:/opt/code_repos# git clone -b 0.15.3 https://github.com/langgenius/dify.git

3.2 安装Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#安装依赖组件
root@dify:~# apt install apt-transport-https ca-certificates curl gnupg lsb-release

#从阿里云镜像站下载 Docker CE 的 GPG 密钥,并将其添加到系统的 APT 密钥链中
root@dify:~# curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#添加阿里云的docker-ce安装源,比默认使用的官方安装源要快些
root@dify:~# add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#执行安装docker-ce
root@dify:~# apt-get install docker-ce docker-ce-cli containerd.io
root@dify:~# vi /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"dns": [
"223.5.5.5",
"223.6.6.6",
"202.103.0.68",
"8.8.8.8"
],
"log-opts": {
"max-file": "5",
"max-size": "50m"
},
"registry-mirrors": [
"https://hub.rat.dev",
"https://registry.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.chenby.cn",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://dockerproxy.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}

#重启docker
root@dify:~# systemctl daemon-reload
root@dify:~# systemctl restart docker

3.3 安装docker-compose

1
2
3
4
5
6
root@dify:/opt# mkdir /opt/instakkPkgs
root@dify:/opt# cd /opt/instakkPkgs/
#直接下载二进制可执行文件
root@dify:/opt/instakkPkgs# curl -L "https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
#赋予可执行权限
root@dify:/opt/instakkPkgs# chmod +x /usr/local/bin/docker-compose

3.4 执行部署相关命令

1
2
root@dify:/opt/code_repos/dify/docker# cp .env.example .env
root@dify:/opt/code_repos/dify/docker# cp docker-compose.yaml docker-compose.yaml.bak
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#替换镜像
root@dify:/opt/code_repos/dify/docker# cat sed-images.sh
#!/bin/bash

sed -i "s#langgenius/dify-api:0.15.3#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-api:0.15.3#g" docker-compose.yaml
sed -i "s#langgenius/dify-web:0.15.3#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-web:0.15.3#g" docker-compose.yaml
sed -i "s#postgres:15-alpine#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgres:15-alpine#g" docker-compose.yaml
sed -i "s#redis:6-alpine#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:6-alpine#g" docker-compose.yaml
sed -i "s#langgenius/dify-sandbox:0.2.10#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.10#g" docker-compose.yaml
sed -i "s#ubuntu/squid:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu/squid:latest#g" docker-compose.yaml
sed -i "s#certbot/certbot#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certbot/certbot:v3.2.0#g" docker-compose.yaml
sed -i "s#nginx:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest#g" docker-compose.yaml
sed -i "s#pingcap/tidb:v8.4.0#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pingcap/tidb:v8.4.0#g" docker-compose.yaml
sed -i "s#semitechnologies/weaviate:1.19.0#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/semitechnologies/weaviate:1.19.0#g" docker-compose.yaml
sed -i "s#langgenius/qdrant:v1.7.3#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/qdrant:v1.7.3#g" docker-compose.yaml
sed -i "s#pgvector/pgvector:pg16#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pgvector/pgvector:pg16#g" docker-compose.yaml
sed -i "s#tensorchord/pgvecto-rs:pg16-v0.3.0#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0#g" docker-compose.yaml
sed -i "s#ghcr.io/chroma-core/chroma:0.5.20#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/chroma-core/chroma:0.5.20#g" docker-compose.yaml
sed -i "s#quay.io/oceanbase/oceanbase-ce:4.3.3.0-100000142024101215#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/oceanbase/oceanbase-ce:4.3.3.0-100000142024101215#g" docker-compose.yaml
sed -i "s#container-registry.oracle.com/database/free:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/container-registry.oracle.com/database/free:latest#g" docker-compose.yaml
sed -i "s#quay.io/coreos/etcd:v3.5.5#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/coreos/etcd:v3.5.5#g" docker-compose.yaml
sed -i "s#minio/minio:RELEASE.2023-03-20T20-16-18Z#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z#g" docker-compose.yaml
sed -i "s#milvusdb/milvus:v2.5.0-beta#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/milvusdb/milvus:v2.5.0-beta#g" docker-compose.yaml
sed -i "s#opensearchproject/opensearch:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opensearchproject/opensearch:latest#g" docker-compose.yaml
sed -i "s#opensearchproject/opensearch-dashboards:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opensearchproject/opensearch-dashboards:latest#g" docker-compose.yaml
sed -i "s#myscale/myscaledb:1.6.4#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/myscale/myscaledb:1.6.4#g" docker-compose.yaml
sed -i "s#docker.elastic.co/elasticsearch/elasticsearch:8.14.3#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/elasticsearch/elasticsearch:8.14.3#g" docker-compose.yaml
sed -i "s#docker.elastic.co/kibana/kibana:8.14.3#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/kibana/kibana:8.14.3#g" docker-compose.yaml
sed -i "s#downloads.unstructured.io/unstructured-io/unstructured-api:latest#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/downloads.unstructured.io/unstructured-io/unstructured-api:latest#g" docker-compose.yaml
1
2
root@dify:/opt/code_repos/dify/docker# bash sed-images.sh
root@dify:/opt/code_repos/dify/docker# docker compose up -d
image-20250317165600013
1
2
3
#本人在另外一个服务器上遇到此情况:执行“docker compose up -d”后,docker-weaviate-1容器一直无法正常创建出来
#执行如下命令后,创建成功(如果没有此容器,就相当于向量化服务未正常运行,后续知识库上传文件执行向量化时会提示“vector database connection error”)
root@ksp-registry:/opt/code_repos/dify/docker# docker-compose up weaviate -d

登录web界面继续部署

浏览器访问:http://10.12.62.32/install

输入必填的相关信息后,点击设置

image-20250317171057195

四、部署ai-to-pptx-backend

1
2
3
4
5
6
7
8
root@dify:/opt/code_repos# git clone https://gitee.com/sy-jiang/ai-to-pptx-backend.git
root@dify:/opt/code_repos# cd ai-to-pptx-backend/

1 下载镜像: docker pull chatbookai/ai-to-pptx:0.2
2 启动镜像: docker run -itd --name ai-to-pptx-backend -p 8080:80 -p 8081:81 chatbookai/ai-to-pptx:0.2
3 开始使用: 在浏览器里面输入: http://localhost:8080
4 列出镜像: docker ps -a
5 进入镜像: docker exec -it <container_name_or_id> /bin/bash

五、部署ai-to-pptx

容器时已经部署前端


Dify0.15.3学习01_使用docker-compose部署
https://jiangsanyin.github.io/2025/03/17/Dify0.15.3学习01_使用docker-compose部署/
作者
sanyinjiang
发布于
2025年3月17日
许可协议