文章

docker - python的学习-单个项目部署

docker - python的学习-单个项目部署

背景

项目开发、部署问题排查记录。

目的

  1. 其他机器部署没问题,单独有一台有问题
  2. 总结一下都做了哪些事情。

行动

生产机器环境流程

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-devpython -m venv myenv,否则执行不起来。

完结

所有项目服务,尽量用systemctl来控制管理。

本文由作者按照 CC BY 4.0 进行授权