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