我正在将我的flask服务器应用程序转换为带有docker-compose的docker容器,并在将输出流传输到textarea之后遇到问题(在将我的flask应用程序托管在Linux机器上之前,这没有发生)。
当我触发事件(单击按钮)时,它将ajax请求发送到flask应用程序,flask应用程序将输出连续流回给客户端,这一切正常(并且我在我的textarea中看到了流)。
当请求完成(xhr.readyState == XMLHttpRequest.DONE
),我得到usb.js:521 POST http://myserver:8000/stream net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
且textarea变为空白时(以前我看到了所有文本输出,但是当ajax完成时出现错误并且textarea消失了),就会发生问题空白)。
我一直在网上阅读,很多人都说nginx更新可以解决此错误。因此,当前我的Docker没有运行代理,我仅通过Gunicorn为其提供服务,是否需要在docker-compose中添加像nginx这样的代理?我以为只有GUnicorn才能满足我的Docker容器的需求?
我也阅读了https://rhodesmill.org/brandon/2013/chunked-wsgi/
这似乎是我的问题,但我不确定如何解决。
这是我的docker-compose:
version: "2.1"
services:
db:
image: mysql:5.7
env_file: .env
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=user
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
volumes:
- ./db:/docker-entrypoint-initdb.d/
- my-datavolume:/var/lib/mysql
app:
build: ./
user: root
ports:
- "2222:22"
- "5000:5000"
- "5005:5005"
depends_on:
- "db"
command: sh -c "/usr/local/bin/upstart.sh"
volumes:
- ./upstart.sh:/usr/local/bin/upstart.sh
volumes:
my-datavolume: