node.js - Docker Nodejs Redis 连接到 127.0.0.1 :6379 failed

标签 node.js docker redis docker-compose

我想在 docker 中将 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_URL=redis://cache 感谢@ozlevka

关于node.js - Docker Nodejs Redis 连接到 127.0.0.1 :6379 failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66849234/

相关文章:

node.js - 如何从在 AWS ecs 上使用 docker 部署的应用程序获取日志

python - Google Cloud Run for Anthos (Knative) 未在 https 请求上正确设置 X-Forwarded-Proto header

redis - 在一个命令中使用来自多个 redis 数据库的数据

node.js - 如何将express-session与ldap js集成

Node.js、Express 和 GM (GraphicsMagick) - 添加水印和一般图像处理效率

Javascript Node.js Unicode 正则表达式

scripting - 你能在redis中查看一个lua脚本吗?

node.js - npm 如何连接到存储库并下载组件?

docker - 如何在docker镜像中预先配置一个elasticsearch管道?

redis - redis:获取集合中包含查询元素的所有键