Deploy CE platform on qianmo - PaddlePaddle/continuous_evaluation GitHub Wiki

CE厂内机器搭建

teamcity server

docker run -it --name teamcity-server-instance  \
    -v $(pwd)/teamcity_runtime/data:/data/teamcity_server/datadir \
    -v $(pwd)/teamcity_runtime/logs:/opt/teamcity/logs  \
    -p 8111:8111 \
    -d \
    jetbrains/teamcity-server

安装postpgres 保存teamcity server数据

docker run -d --name postgres-db \
-p 5432:5432 \
-e POSTGRES_PASSWORD=XXXXX \
postgres \
-c "synchronous_commit=off" -c 'shared_buffers=512MB' -c 'max_wal_size=1500MB' -c 'checkpoint_completion_target=0.9'

teamcity agent

按照下面wiki中的步骤配置、启动teamcity agent
https://github.com/PaddlePaddle/Paddle/wiki/PaddlePaddle-CI-on-TeamCity#setup-teamcity-agents

启动后, 在机器的work目录下会生成一个16位的hashcode目录(该目录是agent的工作目录)。
如:/home/teamcity/work/c2d32ca74e31c299,
在该目录下执行启动teamcity agent tasks的docker

nvidia-docker run -it --name=teamcity-agent --net=host \
-v $(pwd):/workspace \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/teamcity/system/git/:/home/teamcity/system/git/ \ #在docker中git 查看teamcity pull到宿主机的代码
-v /root/.cache/paddle/dataset/:/root/.cache/paddle/dataset/ \
-w /workspace/modelce \     
teamcity-agent-new:latest  #V100机器用cuda9.0的docker镜像
/bin/bash

进到该docker中,安装依赖包:

apt install mongodb python3 python3-pip
pip3 install xonsh numpy pymongo

不同环境的具体依赖
http://wiki.baidu.com/pages/viewpage.action?pageId=501925174

在机器上调试编译paddle、执行models命令:

docker exec -i teamcity-agent bash -c "./build_paddle.xsh"
docker exec -i teamcity-agent bash -c "source ~/.bashrc; ./main.xsh "

调试通过后设置到teamcity build step中。

CE db

源码安装mongodb,使用默认配置
启动db

nohup mongod --dbpath mongo.db(db数据保存路径) &

CE web

nvidia-docker run -it --name=teamcity-db --net=host \
-v $(pwd):/workspace \
-v /var/run/docker.sock:/var/run/docker.sock \
paddle_ce:latest /bin/bash

启动teamcity web(默认80端口)

nohup python3 main.py &

安装的依赖包

apt install python3 python3-pip mongodb openjdk-8-jdk
pip3 install flask==1.0 flask-cache pymongo

在浏览器中输入host地址,可以访问CE web http://10.255.100.55/

备份和容错

teamcity aegnts 和 teamcity db 镜像每天零点向qianmo镜像仓库push
mongodb 数据每日备份