Flask + Gunicorn в контейнере Ubuntu, нет связи - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть колба + сервер gunicorn, работающий на Ubuntu docker образ (ubuntu:18.04)

В docker -составить У меня это:

  python_server:
    build: ./python_server/
    image: flask-server:${PYTHON_SERVER_VERSION}
    command:
      [
        "gunicorn",
        "-b",
        "0.0.0.0:8080",
        "wsgi:app",
        "--workers",
        "9",
        "--worker-class",
        "gevent",
        "--worker-connections",
        "1000",
      ]
    expose:
      - "8080"


------ OTHER CONTAINERS THAT USE THIS ONE HERE -------------

Когда Я пытаюсь открыть порт в Dockerfile (RUN ufw allow 8080) Я получаю:

UFW не найден

Другие контейнеры не могут подключиться к нему, в Получение узла:

error: Error: write ECONNRESET
     at WriteWrap.afterWrite [as oncomplete] (net.js:789:14)

forgotten to catch a Promise rejection:
      write ECONNRESET

и я не вижу никаких соединений в журнале

Это проблема с брандмауэром?

1 Ответ

1 голос
/ 08 апреля 2020
  1. Команда ufw не нужна, просто удалите ее.
  2. Вам не хватает переадресации портов. «expose», согласно документации, «выставит порты, не публикуя их на хост-компьютере».

То, что вы хотите:

ports:
  - "8080:8080"

Вместо expose section.

Чтобы немного понять, почему вам нужна переадресация портов, см. https://pythonspeed.com/articles/docker-connection-refused/

...