docker-compose安装程序不允许容器连接到redis

所以我写了一个节点应用程序,我的docker-compose.yml如下所示:

version: '2' services: redis: image: "redis:latest" web: build: . ports: - "3000:3000" volumes: - .:/app links: - redis emailworker: build: . env_file: - ./.env command: node ./lib/workers/email.js volumes: - .:/app links: - redis smsworker: build: . env_file: - ./.env command: node ./lib/workers/sms.js volumes: - .:/app links: - redis 

很简单,一个networking服务器,和两个工人来处理电子邮件和短信工作。 一切都很好,直到今天下午,什么都没有改变,但我的应用程序启动时,我不能再连接到redis容器。 我运行docker-compose up并在尝试使用kue节点模块连接到redis时出现以下错误:

 Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379 at Object.exports._errnoException (util.js:1022:11) at exports._exceptionWithHostPort (util.js:1045:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14) 

我的连接redis的连接如下所示:

 const kue = require('kue'), queue = kue.createQueue({ root: __dirname, redis: { host: 'redis', port: 6379 } }); queue.on('error', err => { console.log('QUEUE ERROR: ', err); }); 

任何想法,我哪里错了? 我昨天刚刚设置了这个,电子邮件被愉快地发送,就像我提到的,唯一会改变的是Web服务中的应用程序代码。 我正在Mac上开发,如果这有所作为,并有最新版本的docker和docker组成。 docker ps在完成docker ps后,

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3af92333ad53 expapi_web "yarn docker" About a minute ago Up About a minute 0.0.0.0:3000->3000/tcp expapi_web_1 d26f1d81ad22 expapi_emailworker "node ./lib/workers/e" About a minute ago Up About a minute 3000/tcp expapi_emailworker_1 1695ec819777 expapi_smsworker "node ./lib/workers/s" About a minute ago Up About a minute 3000/tcp expapi_smsworker_1 5cb6701f3586 redis:latest "docker-entrypoint.sh" About a minute ago Up About a minute 6379/tcp expapi_redis_1