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
我想在 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