Dify升级到1.5.1详细操作步骤,规避和RAGFlow的镜像冲突问题
一、步骤概述
官方给出了操作方法。其核心步骤就是:
停止服务:在更新之前,先停止当前运行的服务。
备份文件:确保备份重要文件,包括 docker-compose.yaml 文件、.env 文件和 volumes 目录。
拉取新的版本相关文件。
更新文件:使用目标版本的对应文件(如 Dify v1.5.1),并更新相关参数,如 URL、数据库密码等。
启动更新后的服务。 清理旧镜像:可以选择清理不再需要的旧镜像以节省空间。 通过这些步骤,可以顺利完成 Dify 的版本升级。
二、停止服务
docker compose down
三、备份参数和数据
cp docker-compose.yaml docker-compose.yaml.20250709
cp .env .env.20250709
tar -cvf volumes-20250709.tgz volumes
压缩的时候可能会报错,也可以用winrar的压缩自行备份,直接拷贝目录也行。
三、拉取最新版本
git checkout main
git pull origin main
注意:拉取的过程需要开启科学上网。有时还需要登录docker。
四、修改参数
在本机用docker安装了ragflow的情况下防止镜像冲突,需要修改默认容器和端口,如果感觉还不保险可以指定network,这里我只修改默认容器,用不同容器和端口来隔离。
内容很长,举两个片段,看标红颜色的地方,就是指定容器。
# The redis cache.
redis:
image: redis:6-alpine
container_name: dify-redis
restart: always
environment:
REDISCLI_AUTH: ${REDIS_PASSWORD:-difyai123456}
volumes:
# Mount the redis data directory to the container.
- ./volumes/redis/data:/data
# Set the redis password when startup redis server.
command: redis-server --requirepass ${REDIS_PASSWORD:-difyai123456}
healthcheck:
test: [ 'CMD', 'redis-cli', 'ping' ]
# The DifySandbox
sandbox:
image: langgenius/dify-sandbox:0.2.12
container_name: dify-sandbox
restart: always
environment:
# The DifySandbox configurations
# Make sure you are changing this key for your deployment with a strong key.
# You can generate a strong key using `openssl rand -base64 42`.
API_KEY: ${SANDBOX_API_KEY:-dify-sandbox}
GIN_MODE: ${SANDBOX_GIN_MODE:-release}
WORKER_TIMEOUT: ${SANDBOX_WORKER_TIMEOUT:-15}
ENABLE_NETWORK: ${SANDBOX_ENABLE_NETWORK:-true}
HTTP_PROXY: ${SANDBOX_HTTP_PROXY:-http://ssrf_proxy:3128}
HTTPS_PROXY: ${SANDBOX_HTTPS_PROXY:-http://ssrf_proxy:3128}
SANDBOX_PORT: ${SANDBOX_PORT:-8194}
PIP_MIRROR_URL: ${PIP_MIRROR_URL:-}
volumes:
- ./volumes/sandbox/dependencies:/dependencies
- ./volumes/sandbox/conf:/conf
healthcheck:
test: [ 'CMD', 'curl', '-f', 'http://localhost:8194/health' ]
networks:
- ssrf_proxy_network
如果要嫌一个个改yml文件中每个镜像的容器名称繁琐,可以采用下面第五段中第二段中的方法,在启动容器时指定项目名称。当然这个依然还要在yml中改web端口和redis端口,使两个项目不冲突。
五、启动服务
检查Docker Compose版本:
docker compose version
根据docker版本选择启动命令,注意此处也需要科学上网:
V2版本执行:
docker compose up -d
V1版本执行:
docker-compose up -d
如果指定项目名称规避和ragflow的镜像冲突,用下面指令:
docker compose -p docker-dify up -d
docker-compose-p docker-dify up -d