No puedo conectarme a la imagen de Postgres predeterminada desde un servicio docker separado que ejecuta el nodo y Sequelize.
Supongo que mi configuración del contenedor no es correcta y quizás mi información de conexión también sea incorrecta porque cuando ejecuto docker-compose --build no puedo conectarme a mi base de datos usando la información de conexión:
Host: 0.0.0.0 Port: 5432 User: guy Password: password Database: engaugeEl mensaje de error es
Unable to connect to the database: { SequelizeConnectionRefusedError: connect ECONNREFUSED 0.0.0.0:5432 at /usr/src/app/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:98:20Estoy ejecutando con un archivo YML que se ve así
version: '2' # specify docker-compose version # Define the services/containers to be run services: web: # name of the first service build: . # specify the directory of the Dockerfile ports: - "3000:3000" # specify port forewarding links: - database database: # name of the third service image: postgres # specify image to build container from ports: - "5432:5432" # specify port forewarding environment: - POSTGRES_USER:'guy' - POSTGRES_PASSWORD:'password' - POSTGRES_DB:'engauge'Y mi conexión desde dentro de mi servicio web se ve así
const sequelize = new Sequelize('postgresql://guy:password@0.0.0.0/engauge');El 0.0.0.0 es la dirección de escucha, se usa para escuchar en todas las interfaces y no es una IP a la que te conectas. En su cadena de conexión, especifique el nombre del servicio para que el nombre de host se conecte, en su caso, la base de database .