这几天迁移了网站,把mysql和flask都运行到了docker容器里面,还用nginx做了应用的负载均衡。中间踩了不少坑,在此记录下:

1、python2不支持中文,就算设置了中文环境,代码里的中文依然报错,python3就没问题。

3、python2和python3的邮件发送函数不一样,同样代码不能套用。

3、还是不要自己构建python3镜像,很麻烦,直接pull官方指定版本就好。

4、docker容器可以指定挂载目录,例如 docker run -it --name flask3 -v /usr/local/web/bluelog/bluelog/images:/root/bluelog/bluelog/images flask3 /bin/bash

5、直接在dockerfile里面设置好环境变量和安装依赖就行。

6、迁移后发现网页的样式有一点变化,在容器里更新Bootstrap-Flask即可,但是要是在构建镜像的时候就在requirements.txt里指定更新后的版本,运行容器后还是有问题,必须得先用旧版本构成容器后,再在容器里面更新成新版本才行。。。搞不清原因何在。


3 Comments latest

  • yuany

    暂时手动构建docker,后面再玩玩docker-compose和k8s,容器学习内容多着呢。

  • yuany Author Reply

    yuany:
    暂时手动构建docker,后面再玩玩docker-compose和k8s,容器学习内容多着呢。

    项目的docker-compose容器编排弄好了,k8s再说吧

  • myself

    用nginx的upstream做负载均衡是出了个bug,网址会变成upstream的变量名,将其改成yuany.net就可以了。

Reply to yuany: Cancel