【QingdaoUOJ】部署

相关连接 均封装与开源

部署详细见

我的部署步骤

把github上的项目克隆下来
git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy
然后启动服务
docker-compose up -d
通过
docker images可以查看镜像
docker ps -a可以查看镜像状态
启动服务后
服务器地址:80下查看网站

修改前端

参考前端
首先保证nodejs版本为v8.12.0
Linux相关安装方法参考此文章
克隆下来前端项目git clone https://github.com/QingdaoU/OnlineJudgeFE.git
然后在OnlineJudgeFE中进行npm install
执行里面的package.json文件

Linux执行下列代码

npm install
export NODE_ENV=development 
npm run build:dll
export TARGET=http://Your-backend
#Your-backend填写自己的服务器+端口
npm run dev

等待即可
本地会拉取线上api进行测试,本地修改不影响线上
修改完毕以后可以运行 npm run build , 会生成一个 dist 文件夹
放在oj的OnlineJudgeDeploy/data/backend/
相对应的docker-compose已经配置好 ,看上面的配置
执行docker-compose up -d

npm install 报错信息与调试整理

Error: Cannot find module
事实上这个报错真正的信息就是这个,熟悉nodejs这一套的人应该知道,这个在每个版本中都是不一样的,因此该报错信息明显就是版本问题。但是有的朋友可能就问了,自己明明都重新安装过nodejs版本了也删除了原先的node_modules,为什么还是不行,我自己也遇到过了这个问题,后来想起来了不知从何时起,使用npm install 安装模块后会产生了package-lock.json这个文件,正是因为该文件包含了旧版本的信息,才导致了新的npm install 安装失败了。

使用nvm管理npm

nvm可以下载多个npm版本,并随时切换使用。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash下载并重启终端后使用
nvm --version检查nvm是否成功安装
nvm list-remote获取npm的可用版本
nvm install 8.12.0安装v8.12.0版本
nvm ls列出安装的npm版本
nvm use 12.16.3切换为v12.16.3的版本
nvm alias default 12.16.3修改v12.16.3为默认版本

docker语句

docker exec -it 容器ID /bin/bash 进入docker中
exit 推出docker容器 或 快捷键ctrl+Q挂起

posted @ 2023-02-09 16:56  iuk11  阅读(85)  评论(0编辑  收藏  举报