【问题标题】:Unable to connect to postgres, redis from nodejs server in docker container: getting connect ECONNREFUSED无法从 docker 容器中的 nodejs 服务器连接到 postgres、redis:连接 ECONNREFUSED
【发布时间】:2020-06-13 04:46:31
【问题描述】:

-- Docker 文件

FROM node:4.4.2
EXPOSE 3000
ENV NODE_ENV test
WORKDIR /app
COPY ["package.json", "npm-shrinkwrap.json*", "./"]
RUN npm install --silent
COPY . /app
CMD node server.js

-- 码头工人组成

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'

我可以在容器外访问 postgres、redis,但 nodejs 应用程序无法同时连接两者并出现错误

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

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

【问题讨论】:

    标签: node.js postgresql docker redis


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2022-01-07
      • 2015-08-26
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      相关资源
      最近更新 更多