Невозможно подключиться к Dockerized CherryPy Server при использовании `cherrypy.tree.mount` - PullRequest
0 голосов
/ 23 октября 2018

Я не могу подключиться к серверу CherryPy, работающему внутри док-контейнера, из моей системы, когда я использую cherrypy.tree.mount, но когда я делаю cherrypy.quickstart(), я могу подключиться к серверу.Запрос скручивания к localhost:8080 с cherrypy.tree.mount выдает ошибку curl: (56) Recv failure: Connection reset by peer.

Файл приложения, который работает

import cherrypy

class HelloWorld(object):
   @cherrypy.expose
   def index(self):
      return "Hello World!"

cherrypy.quickstart(HelloWorld(), '/', {'global': {'server.socket_host':'0.0.0.0','server.socket_port': 8080}})

Файл приложения, который не удается

import cherrypy

class HelloWorld(object):
    @cherrypy.expose
    def index(self):
        return "Hello World!"

    cherrypy.tree.mount(HelloWorld(), '/', {'global':{'server.socket_host':'0.0.0.0','server.socket_port': 8080}})

    cherrypy.engine.start()
    cherrypy.engine.block()

Dockerfile

FROM python:3.6

RUN mkdir -p /opt/server

WORKDIR /opt/server
ADD . /opt/server
VOLUME /opt/server

RUN pip install cherrypy

EXPOSE 8080

CMD python app.py

Я должен использовать cherrypy.tree.mount, потому что мне нужно запустить несколько приложений на одном сервере.

1 Ответ

0 голосов
/ 23 октября 2018

Я неправильно указал конфигурацию.Правильный способ установки глобальных настроек:

cherrypy.config.update({'server.socket_host':'0.0.0.0','server.socket_port': 8080})

после того, как он был установлен, он работает нормально.конфиги на cherrypy.tree.mount есть для каждого приложения.

...