- vagrant (https://www.vagrantup.com/downloads.html)
- virtualbox (https://www.virtualbox.org/wiki/Downloads)
- docker (https://www.docker.com/community-edition)
首先拷贝 LambdaOJ2.box
到本地系统中,在其所在目录执行:
vagrant box add LambdaOJ2 LambdaOJ2.box
此后,该 LambdaOJ2.box
已无用,可删除。
克隆代码仓库到本地,设置本项目的 git 用户名、邮箱:
git clone <...> milos
cd milos
git config --local user.name "<...>"
git config --local user.email "<...>"
(可选)配置项目的 push.default:
git config --local push.default simple
在项目根目录,初始化本项目的 vagrant:
vagrant init
拷贝 vagrant 配置文件到项目根目录下:
cp examples/Vagrantfile .
启动 vagrant:
vagrant up
可使用 vagrant ssh
命令登陆虚拟机,检查 vagrant 是否成功启动。
编辑系统的 hosts 文件 (/etc/hosts
) ,用于访问虚拟机。
添加下面这行:
192.168.27.10 lambdaoj2
docker pull kainwen/lambdaoj:v1.0
启动 vagrant:
vagrant up
ssh 登陆 vagrant 虚拟机:
vagrant ssh
切换到虚拟机内的项目目录,同时进入 virtualenv 环境:
workon LambdaOJ2
注:以下跟 django 相关的所有命令都只能在 virtualenv 环境中执行,
故请务必使用 workon
进入该项目目录。
这个目录(
/vagrant
)是共享的,内容和外面 Host 系统的 milos 项目目录是保持一致的。 开发时,只需要在外面的 Host 系统中用自己喜欢的编辑器修改项目代码即可。 git 也直接在 Host 系统中使用即可。
代码从线上 master 分支更新后,可能需要进行某些准备工作。
若 pip 依赖包进行过变动:
pip install -r requirements.txt
若 migrations 文件有过变动:
./manage.py migrate --noinput
如需创建站点管理员账号:
./manage.py createsuperuser
- 运行:
celery multi start lambdaoj2 -A lambdaoj2 -B -l info --pidfile="/tmp/celery_lambdaoj2.pid" --logfile="/var/log/celery/lambdaoj2.log"
- 重启:
celery multi restart lambdaoj2 -A lambdaoj2 -B -l info --pidfile="/tmp/celery_lambdaoj2.pid" --logfile="/var/log/celery/lambdaoj2.log"
- 关闭:
celery multi stop lambdaoj2 -A lambdaoj2 -B -l info --pidfile="/tmp/celery_lambdaoj2.pid" --logfile="/var/log/celery/lambdaoj2.log"
./manage.py runserver 0.0.0.0:8000
www 可访问: http://lambdaoj2:8000/swagger/ 或 http://lambdaoj2:8000/api/
admin 可访问: http://lambdaoj2:8000/admin/
- 挂起:
vagrant suspend
- 关闭:
vagrant halt