docker - python的学习-单个项目部署
docker - python的学习-单个项目部署
背景
项目开发、部署问题排查记录。
目的
- 其他机器部署没问题,单独有一台有问题
- 总结一下都做了哪些事情。
行动
生产机器环境流程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 安装 pyenv 、按照提示配置一下
curl https://pyenv.run | bash
#
# 安装 Python 3.12.12
pyenv install 3.12.12
pyenv global 3.12.12 # 设为全局默认(可选)
# 图像依系统lib库,python虚拟环境
apt-get update && apt-get install -y libglx-mesa0 mesa-common-dev python3-venv
# 然后到项目根目录开始走起了
cd {projectRootDir}
python -m venv myenv
source myenv/bin/activate
pip install grpcio protobuf opencv-python requests Pillow dotenv
#可选
# pip install --upgrade pip
python main.py
问题浮现
1
2
3
4
5
6
7
8
root@chatraha-0001:~# systemctl status acrobatics-dev
● acrobatics-dev.service - acrobatics server
Loaded: loaded (/etc/systemd/system/acrobatics-dev.service; disabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2026-01-23 10:44:40 CST; 19s ago
Process: 427226 ExecStart=/bin/bash -c cd /data/app/acrobatics-dev && source myenv/bin/activate && python main.py (code=exited, status=127)
Main PID: 427226 (code=exited, status=127)
CPU: 5ms
该文件如下acrobatics-dev.service:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=acrobatics server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
User=root
ExecStart=/bin/bash -c 'cd /data/app/acrobatics-dev && source myenv/bin/activate && python main.py'
Restart=always
RestartSec=60s
PrivateTmp=true
[Install]
WantedBy=multi-user.target
我一开始创建了目录
/data/app/acrobatics_dev,然后都配置好了,开始运行,发现失败。然后我进行了目录重命名
mv /data/app/acrobatics_dev /data/app/acrobatics-dev,但是环境我已经初始化好了,重命名后,手动可以执行。紧接着我又把目录名称改回来,重新初始化了项目:先创建
/data/app/acrobatics-dev再python -m venv myenv,否则执行不起来。
完结
所有项目服务,尽量用systemctl来控制管理。
本文由作者按照 CC BY 4.0 进行授权