Flask、Vue部署总结

 

 

问题一:Docker启动容器时,容器迅速退出?

  这个问题在于:第一点:docker容器必须保证前台必须有一个程序运行,否则会自动退出;

         第二点: 如果使用 docker run --name test -itd -p 5000:5000 --rm ImageId  /bin/bash, 这个命令会使用bash的方式运行容器,会直接进入容器,从而覆盖在Dockerfile中的CMD指令,一般来说,CMD命令是在启动容器的时候触发的,而RUN是在构建镜像的时候触发,ENTERPOINT是用于扩展启动容器时的参数的;

           第三点: 每个容器启动后,我们都可以使用 docker logs -f containerID 查看启动日志

 

问题二:容器应用的划分?

  不是所有的服务都需要集成到一个docker容器中启动,而是可以一定程度的拆分,使得镜像构建轻便,彼此解耦,只要通过端口的暴露来提供服务即可

 

问题三:supervisor 监控 celery进程时,报错: WorkerLostError('Could not start worker processes')

  出现这个原因,有点莫名奇妙,因为当在自己的电脑上跑celery时发现没有问题,但是到了生成的容器中就出现了这个问题,原因是celery会根据当前的cpu核数来启动相应数量的worker,所以当在部署的时候要主要容器的内存大小;同时我们也可以通过-c 选项来

指定多少启动进程,从而控制内存的额外开销(celery worker -A manage.celery -c 4 -l info)

 

问题四:Vue前端使用https的方式与后端服务进行交互时,报错:Failed to execute 'open' on 'XMLHttpRequest': Invalid URL?

  这个原因很简单,很大概率上是URL写错了。

 

问题五: 前端使用https与后端进行数据交互,这里主要是Nginx的配置中来进行ssl加密和解密,前端需要注意的是使用https为URL开头;如果是Websocket则使用wss开头

 

上一篇:celery服务的使用


下一篇:自建redis(单机)升级到腾讯云redis(分片式集群)的血的教训