【问题标题】:docker+sanic: curl: (52) Empty reply from serverdocker+sanic: curl: (52) 来自服务器的空回复
【发布时间】:2021-09-13 17:16:13
【问题描述】:

我有一个docker文件如下

FROM python:3.6.8
WORKDIR /app
COPY requirements.txt /app/requirements.txt
ADD local-module /app/local-module
RUN python3 -m venv /opt/venv
ADD . /app
RUN . /opt/venv/bin/activate && pip install Cython && pip install -r requirements.txt && pip install /app/local-module && rm -rf /app/local-module && python /app/setup.py install
CMD ["/opt/venv/bin/python3", "/app/module/app_runner.py", "--debug"]
EXPOSE 9000
docker build  --tag  module:v1  .

这是在服务器中运行应用程序的 app_runner.py 文件

from module import create_app_instance


app = create_app_instance()


if __name__ == '__main__':
    app.run(host='0.0.0.0')
docker run -d -p 9000:9000 module:v1
5ac90afde3cc8dfe376d04ba4eaf0edc1611aef067651ec98218a51f600f6a76

以下是 curl 负载和响应

curl -X POST -H "Content-Type: application/json" http://localhost:9000/api-end-point -d '{"key": value, ...}'
curl: (52) Empty reply from server

【问题讨论】:

  • Flask的默认端口是5000,第二个docker run -p端口号需要和这个匹配。

标签: python docker curl


【解决方案1】:

添加 port='9000' 就可以了。

from module import create_app_instance


app = create_app_instance()


if __name__ == '__main__':
    app.run(host='0.0.0.0', port='9000')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 2021-05-07
    • 2015-05-05
    • 2010-12-27
    • 1970-01-01
    • 2021-08-03
    相关资源
    最近更新 更多