簡體   English   中英

Docker compose error to connect postgres database with Node API

[英]Docker compose error to connect postgres database with Node API

當我嘗試通過 Node.js 中的 API 訪問 postgres 數據庫時,我遇到了與 docker-composer 的連接錯誤。

我使用 Sequelize as ORM 來訪問數據庫。 但我不知道發生了什么。

docker-compose.yml

version: '3.5'

services:
  api-service:
    build:
      context: .
      dockerfile: ./api-docker.dockerfile
    image: api-service
    container_name: api-service
    restart: always
    env_file: .env
    environment:
      - NODE_ENV=$NODE_ENV
    ports:
      - ${PORT}:3000
    volumes:
      - .:/home/node/api
      - node_modules:/home/node/api/node_modules
    depends_on:
      - postgres-db
    networks:
      - api-network
    command: npm run start:dev 

  postgres-db:
    expose:
      - ${PORT_SERVICE}
    ports:
      - ${PORT_SERVICE}:5432
    restart: always
    env_file: .env
    volumes:
      - pgReportData:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: ${USER_SERVICE}
      POSTGRES_PASSWORD: ${PASSWORD_SERVICE}
      POSTGRES_DB: ${DATABASE_SERVICE}
    networks:
      - api-network
    container_name: postgres-db
    image: postgres:10

networks:
  api-network:
    driver: bridge

volumes:
  pgReportData:
    driver: local
  node_modules:

.env:

NODE_ENV=development
PORT=30780
HOST_SERVICE=postgres-db
DATABASE_SERVICE=base
USER_SERVICE=user
PASSWORD_SERVICE=password
DIALECT=postgres
PORT_SERVICE=5444

api-docker.dockerfile:

FROM node:12
WORKDIR /src
COPY . .
COPY --chown=node:node . .
USER node
RUN npm install
EXPOSE $PORT
ENTRYPOINT ["npm", "run", "start:dev"]

當我運行時: docker-compose up

我收到此錯誤:

在此處輸入圖像描述

有什么想法嗎?

有人能幫我嗎??

如果 node 是唯一連接到 postgre-db 的應用程序,您可以刪除網絡,並公開 postgredb 運行端口 (5432)。 要連接到數據庫,您可以簡單地使用容器名稱作為主機。

連接字符串: "postgres://YourUserName:YourPassword@postgres-db:5432/YourDatabase";

version: '3.5'

services:
  api-service:
    build:
      context: .
      dockerfile: ./api-docker.dockerfile
    image: api-service
    container_name: api-service
    restart: always
    env_file: .env
    environment:
      - NODE_ENV=$NODE_ENV
    ports:
      - ${PORT}:3000
    volumes:
      - .:/home/node/api
      - node_modules:/home/node/api/node_modules
    depends_on:
      - postgres-db
    command: npm run start:dev 

  postgres-db:
    expose:
      - 5432
    restart: always
    env_file: .env
    volumes:
      - pgReportData:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: ${USER_SERVICE}
      POSTGRES_PASSWORD: ${PASSWORD_SERVICE}
      POSTGRES_DB: ${DATABASE_SERVICE}
    container_name: postgres-db
    image: postgres:10

volumes:
  pgReportData:
    driver: local
  node_modules:

暫無
暫無

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

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