[英]While using docker-compose, node application fails to connect to Redis
我正在运行Ubuntu并尝试为节点应用程序设置开发环境,这是我docker-compose.yml
:
version: "2"
services:
redis:
image: redis
ports:
- "6381:6379"
volumes:
- /var/lib/thinklog-queue:/data
activity-service:
build:
context: ./activity-service
command: yarn dev
ports:
- "3001:3001"
environment:
REDIS_QUEUE_URL: "redis://redis:6381"
depends_on:
- redis
节点应用程序的Dockerfile如下所示:
FROM node:9
WORKDIR /app
COPY package.json ./
COPY yarn.lock ./
RUN yarn install
COPY . .
EXPOSE 4000
CMD ["yarn", "start"]
我从环境变量扩展Redis连接字符串。
当我在日志中运行docker-compose build && docker-compose up
,我从节点应用程序获取以下输出:
activity-service_1 | 错误:Redis与Redis的连接:6381失败-连接ECONNREFUSED 172.20.0.2:6381
似乎安装正确,但是有一些东西阻止了到Redis的内部连接。 (在这个Docker撰写网络内部)
从外部连接到此Redis实例,例如其他shell会话就可以了:
kuno@dell:~/code/THINKLOG/activity-service$ redis-cli -p 6381
127.0.0.1:6381> ping
PONG
我还尝试像这样挂载自定义配置(在docker-compose.yml
内的Redis卷阵列中添加了新项目):
- ./redis.conf:/usr/local/etc/redis/redis.conf
其中已注释掉绑定行并对其进行了修改(最后一个地址是docker-compose内部使用的地址):
bind 192.168.1.100 10.0.0.1 172.20.0.2
我是否还应该挂载自定义Redis配置并配置Redis以允许docker网络内的连接?
在URL REDIS_QUEUE_URL: "redis://redis:6379"
端口更改为6379 REDIS_QUEUE_URL: "redis://redis:6379"
6381是主机IP上的端口,而不是redis容器端口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.