Python项目的线上部署

1、安装部署python3.7.0  和虚拟环境 脚本

#! /bin/bash
yum install wget -y
cd /etc/yum.repos.d/
mkdir bak
mv * bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install zlib-devel bzip2-devel openssl-devel openssl-static ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel lzma gcc
yum -y groupinstall "Development tools"
yum install epel-release -y
cd /usr/local/src/
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar xvf Python-3.7.0.tar.xz
mv Python-3.7.0 /usr/local/python-3.7
cd /usr/local/python-3.7/
./configure --prefix=/usr/local/sbin/python-3.7
make && make install
/usr/local/sbin/python-3.7/bin/python3.7 -V
ln -sv /usr/local/sbin/python-3.7/bin/python3.7 /usr/bin/python3
/usr/local/sbin/python-3.7/bin/pip3 -V
ln -s /usr/local/sbin/python-3.7/bin/pip3 /usr/bin/pip3
mkdir /disk
mkdir /disk/env
cd /disk/env
pip3 install --upgrade pip
pip3 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
virtualenv venv
virtualenv -p /usr/bin/python3 venv

source  activate     进入虚拟环境

deactivate       退出虚拟环境

 

2、安装部署mysql5.7的脚本

#! /bin/bash
rpm -qa | grep mariadb
yum -y remove mariadb-*
rpm -qa | grep mysql
yum -y remove mysql-*
yum install epel-release -y
yum install wget -y
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld.service
systemctl status mysqld.service
systemctl enable mysqld.service
grep "password" /var/log/mysqld.log

2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,

3、修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'zj123456';

4.开放远程连接

grant all privileges on *.* to 'root'@'%' identified by 'zj123456' with grant option;

flush privileges;

删除某用户命令          delete from user where host='localhost' and user='root';

 

5、项目的启动、依赖管理

 

(1)进入工程主目录

(2)产生依赖库 pip freeze > requirements.txt

  进入虚拟环境     source venv/bin/activate

  安装依赖    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

  查看环境依赖:pip list

  

启动服务

python manage.py runserver 0.0.0.0:8000

(无问题情况,在后台运行:

nohup python manage.py runserver 0.0.0.0:8000 &

 

现有项目需要的依赖

Django==1.11.11
backports.entry-points-selectable==1.1.1
beautifulsoup4
distlib==0.3.3
filelock==3.4.0
importlib-metadata==4.8.2
platformdirs==2.4.0
pymysql==1.0.2
Pillow==8.4.0
six==1.16.0
typing_extensions==4.0.1
virtualenv==20.10.0
zipp==3.6.0

python3.7.0 和  django  的兼容性问题    

 

由于django 1.11版本和python3.7版本不兼容, 2.0版本以后的Django修复了这个问题

 

File "E:\python\learning_log\ll_env\lib\site-packages\django\contrib\admin\widgets.py", line 151
'%s=%s' % (k, v) for k, v in params.items(),
^
SyntaxError: Generator expression must be parenthesized

File "/usr/local/lib/python3.7/site-packages/django/contrib/admin/widgets.py", line 152

 

sed -ri.bac "152s/.$//" /usr/local/lib/python3.7/site-packages/django/contrib/admin/widgets.py

解决方法:

方法1.找到对应路径下的widgets.py,将逗号删除即可

方法2.升级Django版本

pip install -U Django




bbs项目的Dockerfile制作

FROM python:3.7.0-slim
USER root
ADD django_bbs14 /root/django_bbs14
RUN cd /root/django_bbs14 && pip install --upgrade pip && pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ sed -ri.bac "152s/.$//" /usr/local/lib/python3.7/site-packages/django/contrib/admin/widgets.py

 

镜像的构建

docker build -t runoob/ubuntu:v1 .

 

bbs项目deployment 文件编写

kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: mybbs14
name: mybbs14
namespace: default
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: mybbs14
template:
metadata:
labels:
k8s-app: mybbs14
spec:
containers:
- name: mybbs14
image: python:v6
imagePullPolicy: IfNotPresent
workingDir: /root/django_bbs14
command: ["/bin/bash", "-ce", "tail -f /dev/null"]
ports:
- containerPort: 8843
protocol: TCP

 

bbs项目service文件编写

 

kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: mybbs14
name: mybbs14
namespace: default
spec:
type: NodePort
ports:
- protocol: TCP
port: 443
targetPort: 8843
nodePort: 30003
selector:
k8s-app: mybbs14

 

 

posted @ 2021-12-08 14:52  gbc  阅读(13)  评论(0)    收藏  举报