使用 Docker 方式安装 Dify 最新版本的问题汇总
Dify 作为当前流行的LLM开发平台,目前使用广泛,但版本升级到1.0.0之后,使用插件中心的方式来管理集成,导致问题百出,本文将说明最新版本 Dify 部署时的问题以及解决。
1. 镜像拉取的问题
Error response from daemon: Get "https://registry-1.docker.io/v2/":
net/http: request canceled while waiting for connection (Client.Timeout
exceeded while awaiting headers)
大部分使用 Dify 的企业,服务器部署在国内,由于 docker 仓库访问问题,通常需要使用 VPN 代理解决,作者通常使用的是 clash 代理,代理端口是7890,那么代理地址就是 http://127.0.0.1:7890,docker服务需要配置如下2个文件(没有就新建)
1.1. ~/.docker/config.json
{
"proxies":
{
"default":
{
"httpProxy": "http://127.0.0.1:7890",
"httpsProxy": "https://127.0.0.1:7890",
"noProxy": "127.0.0.0/8,172.16.0.0/12,192.168.0.0/16,10.0.0.0/8,localhost"
}
}
}
1.2. /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=https://127.0.0.1:7890"
Environment="NO_PROXY=127.0.0.0/8,172.16.0.0/12,192.168.0.0/16,10.0.0.0/8,localhost"
Environment="http_proxy=http://127.0.0.1:7890"
Environment="https_proy=https://127.0.0.1:7890"
Environment="no_proxy=127.0.0.0/8,172.16.0.0/12,192.168.0.0/16,10.0.0.0/8,localhost"
1.3. 重启docker服务
systemctl daemon-reload
systemctl restart docker
这样进入 Dify 的 docker 目录执行 docker-compose up -d
拉取镜像时就正常
2. 插件中心的问题
在插件中心,无论是使用在线还是离线安装,都会出现 “PluginDaemonInternalServerError: no available node, plugin not found”,界面显示安装完成,但是配置始终报错,是因为插件并没有安装完整,具体的说每个插件都会有很多依赖,由于网络原因导致。
2.1. 删除代理配置
为了 pull 镜像,我们配置了代理,这里的代理会传递给启动的容器中,当容器远程拉取插件,使用的代理还是是 http://127.0.0.1:7890 时,这里就会有问题,所以需要删除 docker 服务的代理
删除下面文件的代理信息
~/.docker/config.json
/etc/systemd/system/docker.service.d/http-proxy.conf
这里需要注意的是,我们使用的大部分 Linux 服务器都是非 root 用户登陆,对于
~/.docker/config.json
文件,因为启动 docker 服务时会使用sudo
,所以 root 用户目录也需要检查这个文件
2.2. pip源配置成国内源
插件程序是 python 编写,相关依赖通过 pip 安装,可以使用国内源代替
.env
在 dify/docker 目录,复制一个 .env 文件
cp .env.example .env
在 .env 文件末尾添加如下配置,其他配置不变
MARKETPLACE_URL=https://marketplace.dify.ai
PLUGIN_WORKING_PATH=/app/storage/cwd
PYTHON_ENV_INIT_TIMEOUT=300
PIP_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple
docker-compose.yaml
找到服务关键字 plugin_daemon,在 environment: 下添加如下信息
PYTHON_ENV_INIT_TIMEOUT: ${PYTHON_ENV_INIT_TIMEOUT:-300}
PIP_MIRROR_URL: ${PIP_MIRROR_URL:-https://pypi.tuna.tsinghua.edu.cn/simple}
2.3. 重启docker服务
systemctl daemon-reload
systemctl restart docker
3. 附录
3.1 服务器使用 clash 代理
# 下载解压
$ wget https://github.com/doreamon-design/clash/releases/download/v2.0.24/clash_2.0.24_linux_amd64.tar.gz
$ tar -zxvf clash_2.0.24_linux_amd64.tar.gz
# 赋执行权
$ chmod 777 clash
# 拉取订阅
$ curl -f "你clash订阅地址" >> config.yaml
# 启动服务
$ ./clash -d ./
版权所有,本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。转载请注明出处:https://www.wangjun.dev//2025/04/summary_issue_docker_dify/