У меня Postgres ошибка подключения к серверу при использовании docker? - PullRequest
0 голосов
/ 20 февраля 2020

Мое приложение работает нормально в моей системе, но когда я создаю docker образ с помощью docker composer, а затем запускаю приложение, оно показывает ошибку ниже.

Однако я решил ее, изменив IP-адрес от 127.0.0.1 => 0.0.0.0 в настройке Flask, как показано ниже, и изображение docker отлично работает в моей системе. Но когда я запускаю его на другой Ubuntu, он выдает мне ту же ошибку и меняет IP на 127.0.0.1.

if __name__ == "__main__":
    app.run(host='**0.0.0.0**',debug=False)

ОШИБКА:

Traceback (most recent call last):
  File "./main.py", line 22, in <module>
    ps.create_table()  # create the table if is not existed
  File "/prj/Modules/postgres.py", line 49, in create_table
    connection = get_connection()
  File "/prj/Modules/postgres.py", line 36, in get_connection
    return psycopg2.connect(f"dbname={db_name} user={user} password={password} host={host}")
  File "/usr/local/lib/python3.8/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection refused
    Is the server running on host **"127.0.0.1"** and accepting
    TCP/IP connections on port 5432?

вы можете получить доступ на мой код и мой docker концентратор:

docker концентратор: applia65 / duplicatebugreportsearchengine Github: https://github.com/ghasemieh/Duplicated-Bug-Report-Detection-System/blob/master/main.py

В основном у меня есть 3 контейнера my-app, Postgres и MongoDB.

Я ценю, если вы поможете мне с этой проблемой. Спасибо

1 Ответ

0 голосов
/ 20 февраля 2020

Из трассы PostgreSql не доступен. Можете ли вы попробовать обновить docker compose и добавить оператор expose, как показано ниже:

expose:
- 5432

Это разрешит доступ только к связанным службам, если также не указано "ports".

...