Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 无法从Laravel应用程序连接到Redis_Docker_Redis - Fatal编程技术网

Docker 无法从Laravel应用程序连接到Redis

Docker 无法从Laravel应用程序连接到Redis,docker,redis,Docker,Redis,我必须在我的Laravel应用程序中使用Socketio配置Redis。然而,迄今为止,无论我尝试过什么,我都会遇到同样的错误: 连接被拒绝[tcp://127.0.0.1:6379]我 我可以使用docker exec-it id sh进入容器,当我ping服务器时,我会收到PONG消息。客户端已经“predis”在my database.php文件中,并且还安装了包 .env REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379 dock

我必须在我的Laravel应用程序中使用Socketio配置Redis。然而,迄今为止,无论我尝试过什么,我都会遇到同样的错误:

连接被拒绝[tcp://127.0.0.1:6379]我

我可以使用docker exec-it id sh进入容器,当我ping服务器时,我会收到PONG消息。客户端已经“predis”在my database.php文件中,并且还安装了包

.env

REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
docker compose.yml

 version: "2"
    services:
      api:
        build: .
        ports:
          - 9000:9000
        volumes:
          - .:/app
          - /app/vendor
        depends_on:
          - postgres
          - redis
        environment:
          DATABASE_URL: postgres://xx@postgres/xx
      postgres:
        image: postgres:latest
        environment:
          POSTGRES_USER: xx
          POSTGRES_DB: xx
          POSTGRES_PASSWORD: xx
        volumes:
          - .Data:/var/lib/postgresql/data
        ports:
          - 3306:5432
      redis:
        build: ./Redis/
        ports:
          - 6003:6379
        volumes:
          - ../RedisData/data:/data
        command: redis-server --appendonly yes
Dockerfile(redis)


错误是它可以连接到端口
6379
上的
127.0.0.1
。因此,请确保主机和端口正常:

  • 主机127.0.0.1正常:如果您在redis以外的同一主机上运行php,或者在Docker主机上运行php,则此工作正常,但在这种情况下,端口将为
    6003

  • 端口6379正常:主机不正常,必须指定Docker容器主机名:
    redis

  • 确保配置缓存正常


如何读取
.env
文件?错误太明显了,说明您的主机设置为
127.0.0.1
。redis主机在容器端口0.0.0.0:6003->6379/tcp上运行。DB_HOST=postgres运行正常。我错过了什么@阿列克斯卡辛
FROM redis:alpine

COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]