node.js - Nodejs应用程序未在docker-compose中连接Redis
问题描述
我有一个Nodejs
连接到Redis
实例的应用程序。我正在使用docker-compose
设置,并运行docker-compose up
. 这是我的docker-compose.yml
文件:
# Specify docker-compose version.
version: '3'
# Define the services/containers to be run.
services:
express:
build: .
container_name: node-app
ports:
- '8000:8000'
depends_on:
- redis-cache
redis-cache:
image: redis
ports:
- 6379:6379
我的Dockerfile
:
FROM node:12-alpine
WORKDIR /app
COPY . .
RUN npm ci
EXPOSE 8000
CMD [ “npm”, “start” ] // Also tried CMD [ “node”, “index.js” ]
我收到以下错误:
redis-cache_1 | 1:M 19 Jan 2021 04:23:49.411 * Ready to accept connections
node-app | sh: “start”: unknown operand
node-app exited with code 2
所以,我进入容器并手动运行npm start
. Nodejs 启动成功,但连接 Redis 时出现以下错误:
Error: Redis connection to redis-cache:6379 failed - getaddrinfo ENOTFOUND redis-cache
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26) {
errno: 'ENOTFOUND',
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'redis-cache'
}
也尝试过node index.js
,但仍然出现同样的错误。这就是我Redis
在我的应用程序中连接到我的实例的方式Nodejs
:
const client = redis.createClient({host: 'redis-cache', port: 6379});
我已经在StackOverflow
以及其他各种网站上尝试了各种答案,但没有一个适合我。请帮忙 !
解决方案
推荐阅读
- redis - 多个订阅一个主题
- python - 如何通过 Flask 请求文件属性获取 Python 字典
- caching - 设置 Ncache(分布式?/共享)
- flask - sqlalchemy烧瓶忽略过滤器查询中的and_和func.DATE
- e-commerce - 产品主控室中的 hybris 搜索和过滤器
- algorithm - 为什么这棵二叉搜索树不能是红黑树?
- c# - C#,在 4 个通道中播放 8kHz 和无符号 8 位的音频
- php - 将存储在 cookie 中的加密 user_id 与存储在数据库中的 user_id 进行比较
- javascript - 使“继续”按钮在选中项目时出现,在未选中项目时消失
- javascript - jQuery动画从左到右有间隙