同时运行两个不同项目(ragflow 和 dify)时,出现了 Redis 容器互相替换的问题

省流:只看解决方法的第1、2步骤
问题描述

在同时运行两个不同项目( ragflow 和 dify )时,出现了 Redis 容器互相替换的问题。具体表现为,当启动一个项目的 Redis 容器时,另一个项目的 Redis 容器会被停止或替换,导致两个项目的 Redis 容器无法同时存在。

问题经过
  1. 最初发现 :在运行 dify 项目时,发现 ragflow 项目的 Redis 容器被替换为 dify 项目的 Redis 容器。
  2. 尝试解决 :通过修改 docker-compose.yml 文件中的 container_name、端口映射和网络配置,尝试让两个项目的 Redis 容器独立运行。
  3. 进一步排查 :检查了当前正在运行的容器状态,发现 ragflow-redis 和 dify-redis 容器无法同时存在,启动一个项目的 Redis 容器时,另一个项目的 Redis 容器会被替换。
  4. 最终解决 :通过明确指定 Docker Compose 项目名称、调整端口映射、确保网络配置的独立性,成功使两个项目的 Redis 容器同时存在并正常运行。
问题原因
  1. 项目名称冲突 :两个不同项目的 Docker Compose 文件在相同目录中运行时,默认生成的项目名称相同,导致 Docker 认为它们属于同一个项目,从而在启动时替换现有容器。
  2. 网络和端口冲突 :两个项目的 Redis 容器连接到相同的网络,且使用相同的端口,导致冲突。
解决方法
  1. 明确指定不同的项目名称 
    使用 -p 选项为每个项目指定不同的 Docker Compose 项目名称,确保每个项目的容器和网络独立存在。

    docker compose -p ragflow up -d    
    docker compose -p dify up -d
  2. 调整端口映射 
    确保每个项目的 Redis 容器使用不同的端口映射,避免端口冲突。例如,一个 Redis 容器使用 6379 端口,另一个使用 6380端口。
    (1)compose.yml文件中修改如下:

        container_name: ragflow-server
        ports:
          - ${SVR_HTTP_PORT}:9380
          - 8081:80
          - 8443:443

    (2)docker-compose-base.yml文件修改如下:

      redis:
        # swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/valkey/valkey:8
        image: valkey/valkey:8
        container_name: ragflow-redis
        command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru
        env_file: .env
        ports:
          - ${REDIS_PORT}:6380
        volumes:
          - redis_data:/data
        networks:
          - ragflow
        restart: on-failure
  3. 确保网络配置独立 :【此步骤省略,因为默认都是配置的不同的网络名称】
    为每个项目的 Redis 容器配置不同的 Docker 网络,避免网络冲突。每个项目的 docker-compose.yml 文件中应使用独立的网络配置。

  4. 清理孤立容器 :【若是没有则忽略】
    使用 --remove-orphans 选项启动 Docker Compose,清理可能残留的孤立容器,避免它们影响当前项目的运行。
    bash    docker compose -f docker-compose-CN.yml up -d --remove-orphans

  5. 结果

    通过以上措施, ragflow-redis 和 dify-redis 容器可以同时运行,两个项目的 Redis 服务互不干扰,问题得以解决。

注:本方法参考了如下链接:同时运行两个不同项目(`ragflow` 和 `dify`)时,出现了 Redis 容器互相替换的问题_dify集成ragflow-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值