Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.3K
Vistas
Docker-Compose: No se puede conectar NodeJS con Mongo y Redis [Conexión rechazada]

Estoy trabajando con 3 Servicios:

  • api-knotain [servicio api principal]
  • api-mongo [mongo db para el servicio api]
  • api-redis [redis para el servicio api]

El Dockerfile para api-knotain tiene el siguiente aspecto

 FROM node:latest # Create app directory WORKDIR /usr/src/app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied # where available (npm@5+) COPY package*.json ./ RUN npm install # If you are building your code for production # RUN npm ci --only=production # Bundle app source COPY . . CMD [ "npm", "start" ]

mi archivo docker-compose como tal:

 version: '3.3' services: api-knotain: container_name: api-knotain restart: always build: ../notify.apiV2/src ports: - "7777:7777" links: - api-mongo - api-redis environment: - REDIS_URI=api-redis - REDIS_PORT=32770 - MONGO_URI=api-mongo - MONGO_PORT=27017 - RESEED=true - NODE_TLS_REJECT_UNAUTHORIZED=0 api-mongo: container_name: api-mongo image: mongo volumes: - ./data:/data/db ports: - "27017:27017" api-redis: container_name: api-redis image: "redis:alpine" ports: - "32770:32770"

corriendo

  • compilación docker-compose
  • docker-compose up

producción:

 api-knotain | connecting mongo ...: mongodb://api-mongo:27017/notify api-knotain | Redis error: Error: Redis connection to api-redis:32770 failed - connect ECONNREFUSED 172.21.0.2:32770 api-knotain | mongo error:MongoNetworkError: failed to connect to server [api-mongo:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 172.21.0.3:27017] api-knotain | Example app listening on port 7777!

ni mongo ni redis se pueden conectar. Intenté las siguientes cosas:

  • use localhost en lugar del nombre del contenedor
  • usar diferentes puertos
  • usar exponer vs puerto

siempre con el mismo resultado

Nota:

  • Puedo conectarme sin problemas tanto a mongo como a redis a través de cli local 'localhost: puerto'

¿Qué me estoy perdiendo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Probablemente los contenedores redis y mongo comiencen más tarde que su aplicación y, por lo tanto, su aplicación no los verá. Para contrarrestar esto, debe esperar a que esos servicios estén listos.

También los enlaces son una característica heredada de Docker . Debe usar depend_on para controlar el orden de inicio y las redes definidas por el usuario si desea aislar su base de datos y los contenedores redis de la red externa.

over 4 years ago · Santiago Trujillo Denunciar

0

version: '3.3' services: api-knotain: depends_on: - api-mongo - api-redis container_name: api-knotain restart: always build: ../notify.apiV2/src ports: - "7777:7777" links: - api-mongo - api-redis environment: - REDIS_URI=api-redis - REDIS_PORT=32770 - MONGO_URI=api-mongo - MONGO_PORT=27017 - RESEED=true - NODE_TLS_REJECT_UNAUTHORIZED=0 api-mongo: container_name: api-mongo image: mongo volumes: - ./data:/data/db ports: - "27017:27017" api-redis: container_name: api-redis image: "redis:alpine" ports: - "32770:32770"
over 4 years ago · Santiago Trujillo Denunciar

0

Parece que depend_on no funcionó correctamente en la versión 3.3 de docker compose. después de actualizar la versión a 3.7, todo funciona perfectamente sin cambios en el archivo de redacción.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda