Невозможно получить и отправить данные в MongoDB из Flask в Docker - PullRequest
0 голосов
/ 26 июня 2018

Я использую Flask и MongoDB внутри докера. Мой журнал показывает все отлично, но я не могу получить и отправить данные, даже localhost: 5000 не работает.

Вот мой файл Docker-compose

version: '3.4'
services:
  flask_example:
    build: .
    ports:
      - '5000:5000'
    links:
      - mongodb
  mongodb:
    image: mongo:latest

Здесь, в моем приложении Flask

app.config['MONGO_DBNAME'] = 'restdb'
app.config['MONGO_URI'] = 'mongodb://mongodb:27017/restdb'
mongo = PyMongo(app)

Я получаю Журнал следующим образом:

mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I КОНТРОЛЬ [initandlisten] MongoDB запускается: pid = 1 порт = 27017 dbpath = / data / db 64-битный хост = 64a180c6c04e mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I CONTROL [initandlisten] db version v3.6.5 mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I КОНТРОЛЬ [initandlisten] git version: a20ecd3e3a174162052ff99913bc2ca 9a839d618 mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I КОНТРОЛЬ [initandlisten] Версия OpenSSL: OpenSSL 1.0.1t 3 мая 2016 г. mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I CONTROL [initandlisten] распределитель: tcmalloc mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I КОНТРОЛЬ [initandlisten] модули: нет mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I CONTROL [initandlisten] build среда: mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I КОНТРОЛЬ [initandlisten] distmod: debian81 mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I CONTROL [initandlisten] distarch: x86_64 mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I КОНТРОЛЬ [initandlisten] target_arch: x86_64 mongodb_1 | 2018-06-26T15: 06: 45.689 + 0000 I CONTROL опции [initandlisten]: { net: {bindIpAll: true}} mongodb_1 | 2018-06-26T15: 06: 45.690 + 0000 I ХРАНЕНИЕ [initandlisten] mongodb_1
| 2018-06-26T15: 06: 45.690 + 0000 I ХРАНЕНИЕ [initandlisten] ** ПРЕДУПРЕЖДЕНИЕ: Использование файловой системы XFS настоятельно рекомендуется с WiredTiger двигатель хранения mongodb_1 | 2018-06-26T15: 06: 45,690 + 0000 I ХРАНЕНИЕ [initandlisten] ** См. http://dochub.mongodb.org/co re / prodnotes-файловая система mongodb_1 | 2018-06-26T15: 06: 45.690 + 0000 I ХРАНЕНИЕ [initandlisten] wiredtiger_open config: create, cache_size = 47 8M, session_max = 20000, выселение = (threads_min = 4, threads_max = 4), config_base = ложь, статистика = (быстро), cache_cursors = ложь, журнал = (Включено = верно, архив = истина, путь = журнал, компрессор = мгновенный), file_manager = (close_idle_time = 100000), statistics_log = (ждать = 0) verbose = (recovery_progress), mongodb_1 | 2018-06-26T15: 06: 46.604 + 0000 I STORAGE [initandlisten] WiredTiger сообщение [1530025606: 604056] [1: 0x7 f9e1d704a00], txn -cover: Set метка времени глобального восстановления: 0 mongodb_1 | 2018-06-26T15: 06: 46.662 + 0000 I CONTROL [initandlisten] mongodb_1
| 2018-06-26T15: 06: 46.662 + 0000 I CONTROL [initandlisten] ** ПРЕДУПРЕЖДЕНИЕ: Контроль доступа не включен для базы данных. mongodb_1 | 2018-06-26T15: 06: 46.662 + 0000 I CONTROL [initandlisten] **
Доступ для чтения и записи к данным и конфигурации неограничен. mongodb_1 | 2018-06-26T15: 06: 46.662 + 0000 I КОНТРОЛЬ [initandlisten] mongodb_1 | 2018-06-26T15: 06: 46.663 + 0000 I ХРАНЕНИЕ [initandlisten] createCollection: admin.system.version с предоставленный UUID: cdebc7d3-958e-43db-b517-bcfdc59e92ce mongodb_1 | 2018-06-26T15: 06: 46.692 + 0000 I COMMAND [initandlisten] настройка FeatureCompatibilityVersion до 3,6 mongodb_1 | 2018-06-26T15: 06: 46.696 + 0000 I ХРАНЕНИЕ [initandlisten] createCollection: local.startup_log с генерируемым UUID: 5b6bb532-fde4-4156-bee9-e4bfa0ae55b7 mongodb_1 | 2018-06-26T15: 06: 46.731 + 0000 I FTDC [initandlisten] Инициализация Полная диагностика данных с каталогом '/data/db/diagnostic.data' mongodb_1 | 2018-06-26T15: 06: 46.731 + 0000 I NETWORK [initandlisten] ждет соединения через порт 27017 mongodb_1 | 2018-06-26T15: 06: 47.028 + 0000 I NETWORK [приемник] соединение принято от 172.28.0.3:46594 # 1 (1 c соединение теперь открыто) flask_example_1 |* Обслуживание приложения Flask "app" (отложенная загрузка) flask_example_1 | Окружающая среда: производство. ВНИМАНИЕ: не используйте Сервер разработки в производственной среде. mongodb_1 | 2018-06-26T15: 06: 47.030 + 0000 I NETWORK [conn1] получен клиент метаданные из 172.28.0.3:46594 conn1: {driver: {name: "PyMongo", версия: "3.6.1"}, os: {тип: "Linux", имя: "Linux", архитектура: "x86_64", версия: "4.9.87-linuxkit-aufs"}, платформа: "CPython" 3.6.5.final.0 "} flask_example_1 | Вместо этого используйте рабочий сервер WSGI. Flask_example_1 | * Режим отладки: on flask_example_1 | * Запуск на http://127.0.0.1:5000/ (нажмите CTRL + C, чтобы выйти) flask_example_1 | * Перезапуск со статом 2018-06-26T15: 06: 47.283 + 0000 I NETWORK [приемник] соединение принято от 172.28.0.3:46596 # 2 (2 соединения открыты) mongodb_1 | 2018-06-26T15: 06: 47.285 + 0000 I NETWORK [conn2] получен клиент метаданные из 172.28.0.3:46596 conn2: {драйвер: {имя: "PyMongo", версия: "3.6.1"}, os: {тип: "Linux", имя: "Linux", архитектура: "x86_64", версия: "4.9.87-linuxkit-aufs"}, платформа: "CPython" 3.6.5.final.0 "} flask_example_1 | * Отладчик активен! Flask_example_1 | * PIN-код отладчика: 174-151-610

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Решено

В производстве / докере оно должно быть следующим

if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True)

поэтому нет localhost:5000, а скорее 0.0.0.0:5000

0 голосов
/ 26 июня 2018

Я вижу здесь колбу и монго, которые подают в отдельных контейнерах. Я думаю, что вы должны исправить раздел ссылок с отображением имени хоста:

links:
  - mongodb:mongodb
...