База знаний Business Studio 7
Переход на сайт нейросети Perplexity AI для поиска информации о Business Studio. Подробнее о возможности см. по ссылке

Содержание справки

Контейнер PostgreSQL находится в статусе «Restarting» или «Exited»

Вопрос:

После запуска стенда контейнер postgresql перешел в статус «Restarting» или «Exited» и не запускается.

Как устранить данную проблему?

Ответ:

Для решения проблемы, проверьте логи контейнера postgresql. Сделать это можно с помощью следующей команды: (ключ --head N используется для ограничения вывода логов первыми N строками)

sudo docker logs postgresql --head 50

Типовые ошибки в логах postgresql и способ их решения:

  • Ошибка «psql: error: connection to server on socket «/var/run/postgresql/.s.PGSQL.5432» failed: FATAL:  role «postgres» does not exist»

    Данная ошибка означает, что в системе не прошла аутентификация к контейнеру postgresql. Происходит попытка подключения к postgresql от имени пользователя postgres, но такой роли в СУБД нет.

    Для решения проблемы, проверьте параметры POSTGRES_BS_BACKEND_USER и POSTGRES_BS_BACKEND_PASSWORD в файле .env. Значение данных параметров должно совпадать с именем роли в базе данных.

    Рекомендуется использовать стандартные значения для данных параметров:
    POSTGRES_BS_BACKEND_USER="postgres"
    POSTGRES_BS_BACKEND_PASSWORD="postgres"
  • Ошибка «psql: error: connection to server at «127.0.0.1», port 5432 failed:Connection refused…»

    Данная ошибка означает, что системе не удается подключиться к контейнеру postgresql по указанному адресу и порту.

    Проверьте доступность указанного порта командой:
    ss -tuln | grep :<порт>

    Рекомендуется использовать стандартный внутренний порт PostgreSQL: 5432

  • Ошибка «…FATAL: database «db_name» does not exist»

    Данная ошибка означает, что происходит попытка подключения к базе данных <db_name>, но такой базы не существует.

    Убедитесь, что база данных существует и её имя совпадает с параметром Db в файле appsettings.json (см. Настройка файла appsettings.json).

    Для этого:

    1. подключитесь к PostgreSQL командой psql -U <user>
    2. проверьте список баз данных командой \l

    Пример выполнения представленных выше команд:
     
    root@6b6e8b36ff53:/# psql -U postgres
    psql (16.9 (Debian 16.9-1.pgdg110+1))
    Type "help" for help.
    
    postgres=# \l
    /postgres
     postgres                              | postgres       | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           |
     template0                             | postgres       | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | =c/postgres                          +
    

    Если базы данных нет в списке, то её нужно развернуть в соответствие с инструкцией Развертывание базы данных.

Если в логах контейнера postgresql нет ошибок, то проверьте на наличие ошибок логи контейнера bs-backend и предпримите меры по их решению. При необходимости можно обратиться на support@businessstudio.ru за помощью, указав, что проверка по текущей статье проведена, но проблему не получилось решить самостоятельно, и приложив собранные логи.