免费做苗木网站,手机网站 制作教程,wordpress 全宽页面,宁波seo品牌推广排名需求背景 服务是跑在docker的容器里的#xff0c;因此要新建image依赖环境是Ubuntu#xff0c;老的是16.4。 步骤 先准备环境#xff0c;因为只有你的环境上去了#xff0c;运行代码的时候才会报错#xff0c;这样才会把需要改的代码暴露出来。 python3.5目前也是被遗弃的… 需求背景 服务是跑在docker的容器里的因此要新建image依赖环境是Ubuntu老的是16.4。 步骤 先准备环境因为只有你的环境上去了运行代码的时候才会报错这样才会把需要改的代码暴露出来。 python3.5目前也是被遗弃的状态我不升级3.9是因为Ubuntu20.4自带python3.8之前自己安装3.9各种报错 python环境升级 dockerfile所在目录 sources.list是对应的Ubuntu的阿里镜像源(这个镜像也可以是清华的只要和Ubuntu的版本对应起来即可) 对应关系在这里 #ubuntu20.4的阿里镜像源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse requirements.txt是项目所需的一些依赖库 #requirements.txt 项目所需的一些依赖库
appdirs1.4.4
cryptography3.3.1
ecdsa0.14.1
Flask1.1.2
Flask-Cors3.0.10
Flask-JWT0.3.2
Flask-PyMongo2.3.0
future0.18.2
idna2.10
ipaddress1.0.23
itsdangerous1.1.0
Jinja22.11.2
MarkupSafe1.1.1
packaging20.8
pyasn10.4.8
pycparser2.20
pycrypto2.6.1
PyInstaller4.1
.
.
.dockerfile文件里的东西也很简单就安装一些项目需要的就可以了 FROM ubuntu:20.04
#更新ubuntu的软件源-dravensources.list中的镜像要和ubuntu的版本对应起来
COPY ./sources.list /etc/apt/sources.list
RUN apt-get update# 建立工作目录 /app
WORKDIR /home/workspace
ENV WORKSPACE /home/workspace
# 将当前文件所在的目录下的所有文件 copy 到工作目录
COPY . /home/workspace
RUN mkdir -p /home/requirements chmod -R 777 /home/requirements
COPY requirements.txt /home/requirements/#设置时区
RUN apt-get install tzdata -y
RUN echo Asia/Shanghai /etc/timezone dpkg-reconfigure -f noninteractive tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime rm /etc/timezone echo Asia/Shanghai /etc/timezone
RUN date
#设置忽略警告信息
ARG DEBIAN_FRONTENDnoninteractive
RUN apt-get install --assume-yes apt-utilsRUN apt-get install curl -y
RUN apt-get install -y apt-transport-httpsRUN echo -n | openssl s_client -connect www.mobibrw.com:443 | sed -ne /-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p | tee /usr/local/share/ca-certificates/www_mobibrw_com.crt
RUN update-ca-certificates
RUN apt-get install -y gcc g makeRUN apt-get install python3-pip -y
RUN pip3 install --upgrade pip
RUN apt-get install vim -y
RUN apt-get install libssl-dev -y
RUN apt-get install libffi-dev
#提前把项目需要的依赖库安装在python的site-packages,pip会自动完成
RUN pip3 install -r requirements.txtRUN apt-get install nodejs -y
RUN apt-get install npm -y然后准备工作做好了cd到dockerfile所在目录执行如下命令 docker build -t yourImageName:yourVersioninfo . 其中最后的这个点是表示在当前目录 然后就是耐心的等待一层一层的layer嵌套 至此我们的环境就准备好了其实上述的结果都是我经过不停的尝试和摸索的结果 刚开始我不知道Ubuntu20.4默认安装python3.8且没有python2.7然后自己一顿安装python3.5和3.9不知道docker image的制作就把老的image拿来改结果费煞苦心还不好使python各种依赖包错误改项目的python代码也是各种报错(知道原理后直接整新的image比较好) *环境装好之后 要在容器中去看python的版本信息常用命令 whereis python 可以看python的安装目录信息版本信息 pip -V 或者pip3 -V 查看pip的信息还有就是如果python3如果是你手动安装的不要折腾软连接了把对应编译代码的命令改了就行 python代码修改 具体python2.7的代码修改网上已经有很多了百度就够了 这里就记录下自己遇到的几点问题 python的字符串问题 主要体现在print函数这个python的那个2-3框架可以做自己手动改也OK我项目中这样的代码不是很多编码解码问题 python3.5之后采用的是Unicode编码其中string和bytes是我遇到问题最多的场景 如果报错bmyString XXXX 基本就是说需要一个字符串但是你给了个bytes[] 如果报错decode或者encode的参数不对再或者是序列化不对也基本是python3升级后的语法变化具体错误看trace call然后基本都能搞定 总结 这次一个很小的一个后台管理系统的服务端项目升级我差不多花了10天的时间 1.python不熟早点用pycharm修改代码会快很多 2.docker也不熟以前只是启container在里面操作 3.这次摸了这些石头下次过河应该就会轻松很多 截屏2021-01-07上午11.17.16.png 可以看到上图中各种版本的image都有python3.5的3.8web专用的 其中的none就是在build image的时候那一行命令对应的一层如果某条命令失败了重新build即可因为之前的layer还在这个docker的设计还是很棒的 最后编辑于2024-10-01 17:48:35 © 著作权归作者所有,转载或内容合作请联系作者 喜欢的朋友记得点赞、收藏、关注哦