1 React前端部署
shell脚本如下
read -p "请输入Git注释:" comment
npm run build
git add .
git commit -m $comment
git push
ssh root@[host号] > /dev/null 2>&1 << eeooff
cd /root/workspace/Frontend/my-app-center-page
git pull
exit
eeooff
echo react部署脚本执行完毕!
nginx配置如下
server {
# 记得开83端口
# 我的应用中心
listen 83;
server_name [host号];
location / {
root /root/workspace/Frontend/my-app-center-page/build;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2 Flask后端部署
2.1 一般Flask项目部署
以后想起来了再写
2.2 Flask使用了socketio之后的部署细节
本地使用的命令
# 更新requirements.txt
pip list --format=freeze > requirements.txt
git add .
git commit -m "注释"
git push
云端使用的命令
# 激活虚拟环境
cd /root/workspace/python/venvs/ttos_backend
source bin/activate
# 进入项目目录
cd /root/workspace/python/ttos-backend
# 拉取代码
git pull
# 安装python第三方库(要安装gunicorn和gevent)
pip install -r requirements.txt
# 杀死占用端口的进程
ps -ef | grep [端口号]
kill -9 [进程号]
# 没有日志的部署
gunicorn -k gevent app:app -w 1 -b 127.0.0.1:5001 -D
# # 可以删除-D,调试gunicorn,-D是以守护进程方式运行的意思
# gunicorn -k gevent app:app -w 1 -b 127.0.0.1:5001
# # 有日志的部署
# gunicorn -k gevent -w 1 --error-logfile='/root/logs/ttos_logs/error.log' --access-logfile='/root/logs/ttos_logs/access.log' -b 127.0.0.1:5001 -D app:app
nginx对应的配置
server {
# 记得在云服务器的控制平台中打开81端口
listen 81;
server_name [host号];
location / {
proxy_pass http://127.0.0.1:5001;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3 PyQT5打包
两个注意点
- 使用虚拟环境
- 使用如下所示的.spec文件
# -*- mode: python ; coding: utf-8 -*-
import os
spec_root = os.path.abspath(SPECPATH) # 这行与spec_root变量被使用的那一行比较重要
block_cipher = None
a = Analysis(['main.py'],
pathex=[spec_root], # spec_root变量被使用地方
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='应用名称',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=False,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='main')