[picbed]my-own-image-bed-toy-for-blog-release

此前开的一个坑,这次填上了。迫于穷,域名又不想备案,vps流量每个月500GB自用也就是十几G这样子而已,所以放着剩下的流量不用简直浪费。加上自己正想实践(梭)一把docker部署.

用flask做个图床吧

9959d97e729d41e3.png
660b0825915b4dad.png

解决问题过程中的链接

  • the-input-device-is-not-a-tty

    出现这个问题的初衷是自己使用docker已经build好后的imgage,但是当这个镜像跑起来之后,container里面的文档数据库除了必须的数据之外没有其他数据了,而使用docker-compose跑起相应的服务之后,代码中有数据库连接要验证用户的,即使刚开始的不用,但是后续要进行数据操作的时候,就会用到了。

    mongoengine文档这么说道:

    By default flask-mongoengine open the connection when extension is instanciated but you can configure it to open connection only on first database access by setting the MONGODB_SETTINGS[‘connect’] parameter or its MONGODB_CONNECT flat equivalent to False

奇怪的事是,使用uwsgi跑这个图传代码的时候,不能使用uwsgi的thread选项,即使是使用了enable-threds也是不可以的,如果启用,项目跑起来后,浏览器中输入地址也是一直在转圈圈,但是如果是django项目的话,是可以启用这个thread选项,并且浏览器输入地址是可以访问。

关于这个thread option的一个issue以及讨论,当时自己也是开启了这个选项,项目跑起来之后,使用ctrl+c结束进程的时候,得等后一会儿才会kill掉。

uwsgi-docs - things to know

By default the Python plugin does not initialize the GIL. This means your app-generated threads will not run. If you need threads, remember to enable them with enable-threads. Running uWSGI in multithreading mode (with the threads options) will automatically enable threading support. This “strange” default behaviour is for performance reasons, no shame in that.

在使用docker过程中涉及到的文档: