基于github开源项目搭建
地址连接
(https://github.com/thunderbarca/BlackStone)
需要:
准备一台centos 7的服务器,安装一些需要用到的东西
yum -y install lrzsz (上传文件)
上传压缩包输入rz命令就行。
yum install -y unzip zip (解压zip)
压缩完成。
在BlackStone-main目录下输入source shell/redhat_run.sh 命令
source shell/redhat_run.sh这条shell脚本命令里面的一些关键点。
系统的基本信息
django 框架
Postgresql 13 数据库
前端、后端 Layu-imini
shell一键式安装命令,在当前目录输入下面命令。
source shell/redhat_run.sh
source ~/.bashrc
安装完成,启动网站
python3 manage.py runserver 0.0.0.0:8000
如果启动没有仍和出错,能正常拉起系统。
后台登录地址: ip+:8000/back/login
默认的用户名和密码是luffy:shadow
核心点
部署题目到服务器, 需要懂点docker的技术。 docker镜像和容器的概念,制作镜像,与制作容器,容器封装镜像,本地制作镜像容器,远程服务器制作镜像容器。
常用命令
#拉镜像
docker pull [image]
#查看当前镜像
docker images
#新建容器
docker run -d -p [host port]:[docker port] [image]
#查看容器
docker ps -a
#拷贝文件
docker cp [outfile] [container id]:[infile]
#进去容器
docker exec -it [container id] bash
#启动容器
docker start [container id]
#停止容器
docker stop [container id]
#删除容器(注意要关了容器才能删)
docker rm [container id]
搜索原lamp
拉取docker pull tutum/lamp
输入docker images,可以看到有tutu/lamp镜像。
后台题目配置
默认的用户名和密码是luffy:shadow
yum -y install lrzsz
yum install -y unzip zip
source shell/redhat_run.sh
source ~/.bashrc
python3 manage.py runserver 0.0.0.0:8000
docker 一键部署
遇到的问题
docker 镜像部署
docker 容器部署
比赛平台web全部是镜像部署
制作web平台题目
先拉一个原生的镜像
docker search lamp
如果需要权限
chmod +x /usr/local/bin/docker-compose
docker pull tutum/lamp
生成容器
docker run -d -p 30009:80 tutum/lamp (30009容器端口80服务器端口)
用容器的id
进去容器里面设置,默认www在app目录下面
复制服务器上面的文件到容器里面
docker cp /var/www/html/filename container_id:/var/www/html
要对index.php index.html加上 chmod 755 权限
复制完成
docker stop 容器id docker start 容器id
在把生成的新容器封装成镜像
docker commit -a=”yunhe” -m “add web” 13aaa0f4a211 upload:1.0
生成新的镜像后 在生成新的容器
docker run -d -p 30001:80 upload:2.0 (容器的端口号记得做个区分)
docker run -d -p 30002:80 easyphp:2.0
docker run -d -p 30003:80 ap0llo/easy:latest
docker run -d -p 30004:80 ap0llo/transcript:latest
常用命令
#拉镜像
docker pull [image]
#查看当前镜像
docker images
#新建容器
docker run -d -p [host port]:[docker port] [image]
#查看容器
docker ps -a
#拷贝文件
docker cp [outfile] [container id]:[infile]
#进去容器
docker exec -it [container id] bash
#启动容器
docker start [container id]
#停止容器
docker stop [container id]
#删除容器(注意要关了容器才能删)
docker rm [container id]
然后就是服务端挂起
screen的安装
yum install -y screen
[root@pvcent107 ~]# screen -dmS Urumchi
[root@pvcent107 ~]# screen -list
There is a screen on:
12842.Urumchi (Detached)
1 Socket i
[root@pvcent107 ~]# screen -r Urumchi
使用 screen 很方便,有以下几个常用选项:
用screen -dmS session name来建立一个处于断开模式下的会话(并指定其会话名)。
用screen -list 来列出所有会话。
用screen -r session name来重新连接指定会话。
用快捷键CTRL-a d 来暂时断开当前会话。
nobup出现的问题
nobup python3 直接杀不掉
ps -aux|grep manage.py | grep -v grep
ps -ef | grep manager.py 或者 ps aux | grep manager.py #查看进程
ps aux | grep manager.py | grep -v grep | awk ‘{print $1}’ | xargs kill -9 #这个表示直接通过command获取进程id并直接kill掉
常用screen参数:
# screen -S docker-d 新建一个名叫docker-d的session,并马上进入
# screen -dmS docker-d 新建一个名叫docker-d的session,但暂不进入,可用于系统启动脚本里
# screen -ls 列出当前所有session
# screen -r docker-d 恢复到zhouxiao这个session,前提是已经是断开状态(-d可以远程断开会话)
# screen -x docker-d 连接到离线模式的会话(多窗口同步演示)
# screen ./rsync.sh screen创建一个执行脚本的单窗口会话,可以attach进程ID
# screen -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业
正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。另一个关闭窗口的方法是使用C-a k,这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a w 显示所有窗口列表
C-a k 这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。
C-a d detach,暂时离开当前session