@Wayne1212121

Как обращаться из контейнера в базу, которая работает локально по localhost:5432?

Всем привет!
Пытаюсь подключиться из контейнера к базе, которая работает локально по адресу localhost:5432, но из контейнера базу не видно.
//docker-compose
version: "3"
services:
    server:
      image: node:latest
      command: sh -c "npm install && npm run dev"
      volumes:
        - ./backend:/usr/src/client
      working_dir: /usr/src/client
      ports:
        - "9001:9001"
      restart: always
      tty: true

//пытаюсь подключиться к локальной базе
const { Pool } = require('pg');

const pool = new Pool({
    host: '127.0.0.1',
    user: 'andrejkolosov',
    password: 'ipadib339',
    port: 5432,
    database: 'docker'
});

module.exports = pool

//в итоге такая ошибка
node:internal/process/promises:246
server_1  |           triggerUncaughtException(err, true /* fromPromise */);
server_1  |           ^
server_1  | 
server_1  | Error: connect ECONNREFUSED 127.0.0.1:5432
server_1  |     at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1133:16) {
server_1  |   errno: -111,
server_1  |   code: 'ECONNREFUSED',
server_1  |   syscall: 'connect',
server_1  |   address: '127.0.0.1',
server_1  |   port: 5432
server_1  | }


Как понимаю контейнер смотрит внутри себя адрес 127.0.0.1:5432 и оттуда не находит. Как сделать, чтобы он смотрел куда нужно?
Буду очень благодарен за помощь!
  • Вопрос задан
  • 2416 просмотров
Пригласить эксперта
Ответы на вопрос 1
@q2digger
никого не трогаю, починяю примус
Использовать вместо 127.0.0.1 , адрес хостсистемы, например 192.168.1.1 (замените на свой).
Предварительно можно проверить, что postgress "слушает" на этом порту этого интерфейса (netstat -tlnp | grep 5432).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы