Как подключиться к PostgreSQL в Докере?

Рейтинг: 1Ответов: 1Опубликовано: 01.04.2023

Я пока изучаю докер и создал файл докер компосе

version: '3.5'

services:
  db_as:
    container_name: db_as
    ports:
      - "5438:5432"
    restart: always
    environment:
      - POSTGRES_DB=db_as
      - POSTGRES_PASSWORD=i5fz%4Nz&o*b#1Ep
      - POSTGRES_USER=root
    image: postgres:15.2-alpine

Но когда пытаюсь получить БД в node через Sequelize, выводит ошибку ConnectionError [SequelizeConnectionError]: database "db_as" does not exist

Мой код Sequelize

const {Sequelize} = require('sequelize')

module.exports = new Sequelize(
    process.env.DB_NAME,
    process.env.DB_USER,
    process.env.DB_PASSWORD,
    {
        dialect: 'postgres',
        host: process.env.DB_HOST,
        port: process.env.DB_PORT,
    }
)

Мой код .env

DB_NAME="db_as"
DB_USER="root"
DB_PASSWORD="root"
DB_HOST="127.0.0.1"
DB_PORT=5438

Я пытался использовать localhost, также ip 127.0.0.1, а также получал реальный ip через docker inspect. Я понимаю, что моя БД находиться внутри контейнера и она изолирована. Я предполагаю, что мне нужна какая-то переадресация портов. Помогите пожалуйста самым правильным способом :).

Ответы

▲ 1Принят

Добавьте постргесу переменную POSTGRES_DB=db_as, чтобы предсоздавалась эта БД при старте контейнера.