Так, ребята, ребята, надеюсь, вы поможете мне.
Итак, я сейчас погружаюсь в докер-контейнеры и пытаюсь портировать свое приложение (flask + mongodb) в два отдельных контейнера. Контейнер MongoDB настроен и отлично работает, запуск контейнера mongoexpress со ссылкой дает мне доступ к базе данных, которую я хотел. Теперь я портировал свое приложение Flask, и страница входа в систему загружается нормально (так что сам порт докера) работает, но, хотя я запускаю контейнер со ссылкой на контейнер моей базы данных, я получаю ошибку сервера, когда пытаюсь загрузить контент из базы данных.
Логи дают мне следующую трассировку:
File "/usr/local/lib/python3.7/site-packages/mongoengine/queryset/manager.py", line 37, in __get__
queryset = queryset_class(owner, owner._get_collection())
File "/usr/local/lib/python3.7/site-packages/mongoengine/document.py", line 190, in _get_collection
db = cls._get_db()
File "/usr/local/lib/python3.7/site-packages/mongoengine/document.py", line 179, in _get_db
return get_db(cls._meta.get('db_alias', DEFAULT_CONNECTION_NAME))
File "/usr/local/lib/python3.7/site-packages/mongoengine/connection.py", line 241, in get_db
db = conn[conn_settings['name']]
File "/usr/local/lib/python3.7/site-packages/pymongo/mongo_client.py", line 1323, in __getitem__
return database.Database(self, name)
File "/usr/local/lib/python3.7/site-packages/pymongo/database.py", line 107, in __init__
"of %s" % (string_type.__name__,))
TypeError: name must be an instance of str
Итак, мой Flask-MongoEngine настроен так:
app = Flask(__name__)
app.config["MONGODB_DB"] = 'database-name'
db = MongoEngine(app)
В основном моя база данных должна быть доступна на локальном хосте через стандартный порт 27017. Есть ли что-то, что я должен учитывать при подключении с помощью Flask к контейнеру, или если ссылка еще не открыла порты, как ожидалось? Mongoexpress работает и имеет доступ, поэтому это должно быть проблемой с моей настройкой.