启动 virtualenv 脚本 rc local

Starting virtualenv script rc local

我是这个领域的新手,希望有人能帮助我。

所以我有一个后端项目,我需要在计算机开机时自动启动(我真的不在乎如何使用 systemd 或 rc.local,我的老板告诉我 rc.local,但我想两者都行)。我只需要启动一个 docker 容器,然后启动我的 virtualenv,然后 运行 项目。

到目前为止,我已经在 /etc/rc.local

试过了

docker start cassandratt #my docker container sleep 20 #an ugly hack to give time for the container to start cd /home/backend/ . venv/bin/activate . /run.py

不行,但是docker容器启动了,所以我猜问题出在virtualenv或python,我真的不知道,因为我没有任何经验在这个领域。

知道如何完成它吗?

提前致谢

编辑:

按照 Samer 的指导,我尝试在激活 virtualenv 后创建一个文件夹并且它创建得很好,所以我认为问题是尝试执行 run.py,也许是加载 virtualenv 的 python?

docker start cassandratt #my docker container cd /home/backend/ . venv/bin/activate mkdir test #folder created fine . /run.py mkdir test2 #folder not created

因此,部分解决方案似乎设置了一些变量而不是直接访问它们。至少这对我有用。感谢 Sample 给了我们一个大提示:)

HOME=/home/backend #the project path
docker start container
. $HOME/venv/bin/activate #activates the virtualenv of the project
/usr/bin/env python $HOME/run.py & #runs the run.py through virtualenv's python #and runs it in the background
exit 0