Docker Nodejs Redis 连接到 127.0.0.1:6379 失败

Docker Nodejs Redis connection to 127.0.0.1:6379 failed

我想在 docker 的 express 服务器上使用 Redis。我正在使用 docker-compose 通过 Redis 构建我的应用程序。这是我的 Dockerfile

代码
FROM node:12-alpine
WORKDIR '/var/www/app'

这是 docker-compose.yml 文件的代码:

redis:
  image: redis
  container_name: cache
  expose:
    - 6379
app:
  build: ./
  volumes:
    - ./:/var/www/app
  links:
    - redis
  ports:
    - 7000:7000
  environment:
    - REDIS_URL = redis
    - NODE_ENV=development
    - PORT=7000
  command:
    sh -c 'npm i && node server.js'

我无法调试为什么它拒绝连接,即使我在 docker-compose.yml 文件中公开了端口 6379。 这是 server.js 文件

的代码
const express = require("express");
const app = express();
const redis =require("redis")

let client=redis.createClient(process.env.REDIS_URL)

client.on('connect',()=>{
  console.log("redis connected")
});

client.on("error", function (err) {
  console.log("Error " + err);
});

var port = process.env.PORT || 7000;

app.listen(port, () => {
  console.log(`Server is listening in port: ${port}`);
});

我已经使用以下命令构建应用程序。

sudo docker-compose up --build

任何指导都会有所帮助。谢谢

redis:
  image: redis
  container_name: cache
  ports:
    - 6379:6379
app:
  build: ./
  volumes:
    - ./:/var/www/app
  ports:
    - 7000:7000
  environment:
    - REDIS_URL=localhost
    - NODE_ENV=development
    - PORT=7000
  command:
    sh -c 'npm i && node server.js'

我已经将 ports 添加到 redis 并删除了 links。请尝试并更新。

已经通过删除中间的空格并将环境后的第一行更改为 REDIS_URL=redis://cache 来解决 感谢@ozlevka