繁体   English   中英

docker-compose redis 连接问题

[英]docker-compose redis connection issue

我一直在尝试对 api 进行 docker 化。但是 redis 崩溃了。 Nodejs 和 mongodb 工作。

Docker-compose.yaml 文件

version: '3'
services:

  mongo:
    container_name: mongo
    image: mongo
    networks:
      - webnet
    ports:
      - '27017:27017'
  redis: 
    image: redis
    container_name: redis
    command: ["redis-server","--bind","redis","--port","6379"]
    ports:
      - '6379:6379'
    hostname: redis

  app:
    container_name: password-manager-docker
    restart: always
    build: .
    networks:
      - webnet
    ports:
      - '80:5000'
    links: 
      - mongo
      - redis
    environment: 
      MONGODB_URI: ${MONGODB_URI}
      clientID: ${clientID}
      clientSecret : ${clientSecret}
      PORT: ${PORT}
      NODE_ENV : ${NODE_ENV}
      JWT_SECRET_KEY: ${JWT_SECRET_KEY}
      JWT_EXPIRE: ${JWT_EXPIRE}
      REFRESH_TOKEN: ${REFRESH_TOKEN}
      JWT_REFRESH_SECRET_KEY: ${JWT_REFRESH_SECRET_KEY}
      JWT_REFRESH_EXPIRE: ${JWT_REFRESH_EXPIRE}
      JWT_COOKIE: ${JWT_COOKIE}
       
networks:
  webnet:

Docker 档案

FROM node:latest

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install 

COPY . .

EXPOSE 5000

CMD ["npm","start"]

错误是 Redis 连接到 127.0.0.1:6379 失败 - 连接 ECONNREFUSED 127.0.0.1:6379。 我怎样才能解决这个问题?

默认情况下,一个 compose 文件中的所有容器都将加入一个 default.network,它们可以在其中相互通信,但是如果您指定 a.network,那么您必须为所有容器指定它。 因此,您可以从 app 和 mongo 服务中删除 .network 声明,或者在 redis 服务上指定它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM