![](/img/trans.png)
[英]Cannot connect to Postgres database with Sequelize using docker-compose
[英]Unable to connect to the Postgres database in Docker Compose
我正在構建一個 Node JS Web 應用程序。 我正在為數據庫使用 Postgres SQL 和 Sequelize。
我有具有以下內容的 docker-compose.yaml。
version: '3.8'
services:
web:
container_name: web-server
build: .
ports:
- 4000:4000
restart: always
depends_on:
- postgres
postgres:
container_name: app-db
image: postgres:11-alpine
ports:
- '5431:5431'
environment:
- POSTGRES_USER=docker
- POSTGRES_PASSWORD=secret
- POSTGRES_DB=babe_manager
volumes:
- ./postgres-data:/var/lib/postgresql/data
build:
context: .
dockerfile: ./pgconfig/Dockerfile
volumes:
app-db-data:
我正在使用以下憑據連接到數據庫。
DB_DIALECT=postgres
DB_HOST=postgres
DB_NAME=babe_manager
DB_USERNAME=docker
DB_PORT=5431
DB_PASSWORD=secret
當應用程序嘗試連接到數據庫時,出現以下錯誤。
getaddrinfo ENOTFOUND postgres
我也試過用這個。
DB_DIALECT=postgres
DB_HOST=localhost
DB_NAME=babe_manager
DB_USERNAME=docker
DB_PORT=5431
DB_PASSWORD=secret
這次我收到以下錯誤。
connect ECONNREFUSED 127.0.0.1:5431
我的應用服務器不在docker-compose.yaml內。 我只是使用“nodemon server.js”啟動它。 我該如何解決?
你需要確保你的 Postgres 容器和你的節點在同一個網絡上。 在它們駐留在 common.network 中之后,您可以使用 docker 的 DNS 從 Node 應用程序解析數據庫,在您的情況下,八個 postgres 或主機名的 test-db 應該可以工作。 有關通過docker.networks進行容器通信的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.