Я очень расстроен. Я пытаюсь подключить веб-сайт flask к базе данных PostgreSQL. Я сделал postgresql db отдельным контейнером и перепробовал все возможные способы подключения к нему. Чтобы не усложнять, мой файл flask имеет конфигурацию с таким uri:
SQLALCHEMY_DATABASE_URI = 'postgresql://user:password@0.0.0.0:5432/db'
Я пробовал localhost, 0.0.0.0, and 127.0.0.1
ни одна из которых не работает, что имеет смысл. Поскольку postgresql db - это еще один контейнер, они не могут подключиться к localhost. они должны быть подключены.
Соответствующая часть моего docker-compose.yml
файла:
db:
image: postgres:10-alpine
ports:
- "5432:5432"
environment:
- POSTGRES_DB=db
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
networks:
db_network:
aliases:
- "pdb"
webapp:
build: .
depends_on: [db]
environment:
- DEBUG=False
ports:
- "5000:5000"
networks:
- db_network
networks:
db_network:
driver: bridge
Хорошо, без ошибок. Итак, теперь я пробую использовать свой URI как SQLALCHEMY_DATABASE_URI = 'postgresql://user:password@pwd:5432/db'
, но я получаю сообщение об ошибке от webabb, что он не может перевести имя хоста, имя или неизвестную службу. В течение последних нескольких дней у меня либо возникали ошибки о том, что я не могу его найти, либо он не может подключиться.
1) Я удалил все локальные экземпляры postgresql 2) Я получил избавился от моего объема, я не был уверен, что это вызывает проблемы 3) Я пробовал разные порты 4) Я попробовал довольно много предложений здесь по SO об очистке осиротевших контейнеров и тому подобном.
Я использовал проверку сети но это давало жестко закодированный IP-адрес, который, я думаю, можно изменить. Я в полном тупике. Может кто подскажет? Я хотел бы полностью стереть Postgresql, а затем настроить сеть, чтобы она заработала. Затем я добавлю объем. Чтобы прояснить, у меня нет никаких конфигурационных файлов для postgres сверх того, что я устанавливаю в файле docker -compose, но у меня он работал в какой-то момент в прошлом, поэтому Я полагаю, мне это не нужно.