Я пытаюсь соединить mongodb с моим приложением в фляге внутри докера. Это не работает. Я пробовал эту ссылку, она работает в Mac, но я использую Windows.
Это мой файл для создания докера
version: '3.4'
services:
docker_flask_mongo:
build: .
ports:
- '5000:5000'
mongodb:
image: mongo:3.4
ports:
- '27017:27017'
в приложении python flask Я попробовал это
client = MongoClient(os.environ['DB_PORT_27017_TCP_ADDR'],
27017)
не работает.
Обновление:
Полный код:
import os
from flask import Flask, redirect, url_for, request, render_template
from pymongo import MongoClient
client = MongoClient(os.environ['DB_PORT_27017_TCP_ADDR'],
27017)
db = client.tododb
app = Flask(__name__)
@app.route('/')
def test_code():
item_doc = {
'name': "a" ,
'description': "b"
}
db.tododb.insert_one(item_doc)
return "done"
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
Полный журнал:
Присоединение к dockerfolder_mongodb_1, dockerfolder_docker_flask_mongo_1
mongodb_1 | 2018-08-27T13: 14: 18.349 + 0000 I CONTROL
[initandlisten] MongoDB запускается: pid = 1 порт = 27017 dbpath = / data / db
64-битный хост = e086871a3aeb mongodb_1 |
2018-08-27T13: 14: 18.349 + 0000 I CONTROL [initandlisten] версия БД
v3.4.14 mongodb_1 | 2018-08-27T13: 14: 18.350 + 0000 I CONTROL
[initandlisten] git version: gghgghg ..............
mongodb_1 | 2018-08-27T13: 14: 18.350 + 0000 I CONTROL
[initandlisten] Версия OpenSSL: OpenSSL 1.0.1t 3 мая 2016 г. mongodb_1
| 2018-08-27T13: 14: 18.350 + 0000 I CONTROL [initandlisten] распределитель:
tcmalloc mongodb_1 | 2018-08-27T13: 14: 18.350 + 0000 I
Модули управления [initandlisten]: нет mongodb_1 |
2018-08-27T13: 14: 18.350 + 0000 I CONTROL [initandlisten] build
среда: mongodb_1 | 2018-08-27T13: 14: 18.350 + 0000 I
CONTROL [initandlisten] distmod: debian81 mongodb_1 |
2018-08-27T13: 14: 18.350 + 0000 I CONTROL [initandlisten] distarch:
x86_64 mongodb_1 | 2018-08-27T13: 14: 18.350 + 0000 I CONTROL
[initandlisten] target_arch: x86_64 mongodb_1 |
2018-08-27T13: 14: 18.350 + 0000 I CONTROL опции [initandlisten]: {}
mongodb_1 | 2018-08-27T13: 14: 18.358 + 0000 I ХРАНЕНИЕ
[initandlisten] mongodb_1 | 2018-08-27T13: 14: 18,358 + 0000 I
ХРАНЕНИЕ [initandlisten] ** ВНИМАНИЕ: Использование файловой системы XFS
настоятельно рекомендуется с механизмом хранения WiredTiger mongodb_1
| 2018-08-27T13: 14: 18.358 + 0000 I STORAGE [initandlisten] **
См http://dochub.mongodb.org/core/prodnotes-filesystem mongodb_1
| 2018-08-27T13: 14: 18.359 + 0000 I ХРАНЕНИЕ [initandlisten] ошибка
создание журнала dir / data / db / journal
boost :: filesystem :: create_directory: на устройстве не осталось места:
"/ data / db / journal" mongodb_1 |
2018-08-27T13: 14: 18.359 + 0000 I ХРАНЕНИЕ [initandlisten] исключение в
initAndListen std :: исключение: boost :: filesystem :: create_directory: нет
на устройстве осталось место: "/ data / db / journal", завершение mongodb_1
| 2018-08-27T13: 14: 18.359 + 0000 I NETWORK [initandlisten] завершение работы:
собирается закрыть сокеты прослушивания ... mongodb_1 |
2018-08-27T13: 14: 18.359 + 0000 I NETWORK [initandlisten] удаление
файл сокета: /tmp/mongodb-27017.sock mongodb_1 |
2018-08-27T13: 14: 18.359 + 0000 I NETWORK [initandlisten] завершение работы:
собираюсь сбросить диаглог ... mongodb_1 |
2018-08-27T13: 14: 18.360 + 0000 I CONTROL [initandlisten] сейчас выходит
mongodb_1 | 2018-08-27T13: 14: 18.360 + 0000 I КОНТРОЛЬ
[initandlisten] завершает работу с кодом: 100 docker_flask_mongo_1 | *
Сервировочное приложение Flask "app" (отложенная загрузка) docker_flask_mongo_1 | *
Окружающая среда: производство docker_flask_mongo_1 | ВНИМАНИЕ: не используйте
сервер разработки в производственной среде.
docker_flask_mongo_1 | Вместо этого используйте рабочий сервер WSGI.
docker_flask_mongo_1 | * Режим отладки: на docker_flask_mongo_1 | *
Запуск на http://0.0.0.0:5000/ (нажмите CTRL + C, чтобы выйти)
docker_flask_mongo_1 | * Перезапуск со статом dockerfolder_mongodb_1
выход с кодом 100 docker_flask_mongo_1 | * Отладчик активен!
docker_flask_mongo_1 | * PIN-код отладчика: 470-553-089
и когда я перехожу на localhost:5000
, я получаю следующую ошибку
pymongo.errors.ServerSelectionTimeoutError
pymongo.errors.ServerSelectionTimeoutError: mongodb:27017: [Errno -2] Name or service not known