簡體   English   中英

無法從 docker 容器中的 nodejs 服務器連接到 postgres、redis:獲取連接 ECONNREFUSED

[英]Unable to connect to postgres, redis from nodejs server in docker container: getting connect ECONNREFUSED

-- 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 應用程序應該嘗試連接到redis:6379 在您的應用程序配置中更改此設置。 目前看起來它正在嘗試連接到本地主機(當您在主機上本地運行服務器時,這可能會起作用)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM