无法从docker容器中的nodejs服务器连接到postgres,redis:获取连接ECONNREFUSED

时间:2020-02-29 06:29:08

标签: node.js postgresql docker redis

-Docker文件

version: "2"
services:
postgresql:
    image: postgres:9.5.21
    container_name: postgresql
    volumes:
        - '$HOME/DOCKER_VOLUME/db-data1:$HOME/DOCKER_VOLUME/var/lib/postgres'
    environment:
        POSTGRES_PASSWORD: <PWD>
        POSTGRES_DB: <DB>
        POSTGRES_USER: <UERS>
    ports:
        - '5432:5432'
redis:
    image: redis
    container_name: redis
    ports:
        - '6379:6379'
broker:
    image: eclipse-mosquitto
    container_name: mosquitto
    volumes:
        - $HOME/DOCKER_VOLUME/etc/mosquitto:$HOME/DOCKER_VOLUME/etc/mosquitto:ro
        - $HOME/DOCKER_VOLUME/var/log/mosquitto:$HOME/DOCKER_VOLUME/var/log/mosquitto:rw
    ports:
        - '1883:1883'
app:
    container_name: ms_user_manager
    environment:
        NODE_ENV: test
    build: .
    volumes:
        - .:/app
        - /app/node_modules
    depends_on:
        - postgresql
        - redis
        - broker
    ports:
        - '3000:3000'

-DOCKER-COMPOSE

Redis - connection to 0.0.0.0:6379 failed - connect ECONNREFUSED 0.0.0.0:6379"

Postgres - Error: connect ECONNREFUSED 0.0.0.0:5432

我能够在容器外部访问postgres,redis,但是nodejs应用无法连接到两者并给出错误

{{1}}

所以任何想法,我做错了什么或错过了什么。

1 个答案:

答案 0 :(得分:1)

您的Node.js应用应尝试连接到redis:6379。在您的应用程序配置中更改此设置。目前,它似乎正在尝试连接到本地主机(当您在主机上本地运行服务器时,该主机可能会工作)。