Ubuntu22.04安装HOJ教程(含docker、npm安装)

由于我是教育网,以下均为在教育网下安装方法。

一、docker安装

1、更新 Ubuntu

打开终端,依次运行下列命令:

sudo apt update
sudo apt upgrade
2、添加 Docker 库

首先,安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
3、添加Docker官方GPG密钥

执行以下命令来添加Docker官方的GPG密钥:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4、添加Docker软件源

执行以下命令来添加Docker的软件源:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5、使用命令更新 Ubuntu 源列表
sudo apt update
6、安装 Docker

最后,运行下列命令在 Ubuntu 22.04 LTS 服务器中安装最新 Docker CE:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
7、配置用户组(可选)

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:

sudo usermod -aG docker $USER
8、运行docker

我们可以通过启动docker来验证我们是否成功安装。命令如下:

systemctl start docker
9、使 Docker 服务在每次重启时自动启动
sudo systemctl enable docker
10、可以使用以下命令查看已安装的 Docker 版本
sudo docker version
11、安装工具
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
12、重启docker
service docker restart
13、验证是否成功
sudo docker run hello-world
14、常见问题

出现以下代码,原因:就是我们的镜像源不行,需要更换镜像源

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Retrying in 10 seconds 
docker: error pulling image configuration: download failed after attempts=6: dial tcp 128.242.245.93:443: connect: connection refused.
See 'docker run --help'.

但是我们就算知道原因,去找度娘会发现大部分都是说更换阿里的镜像源,但是我们尝试之后并没有作用

解决方案

配置加速地址:设置registry mirror

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl status docker

重启完docker之后检查registry mirror刚刚配置的加速地址是否成功

docker info

再次验证是否成功(注意等半分钟左右)

15、查看镜像

上面我们拉取了hello-world的镜像,现在我们可以通过命令来查看镜像,命令如下:

sudo docker images

 

二、docker-compose安装

由于github不稳定,建议离线下载再安装,这里以下载安装包安装为例。

1、去github下载:

https://github.com/docker/compose/releases

这里需要注意docker-compose需要和docker版本对应,具体如下图(更详细的自行百度),同时根据自己系统的架构信息下载适合的版本。

至于自己的系统架构信息使用下面命令查询:

1.1架构信息

uname -m

2.1详细信息

uname -a

 

我这里下载的是v2.30.0/docker-compose-linux-x86_64(docker-compose版本是2.30.0,系统是linux,架构是x86_64),下载链接如下:

https://github.com/docker/compose/releases/download/v2.30.0/docker-compose-linux-x86_64

   

2、进入到安装位置文件夹,将 docker-compose 移至 /usr/local/bin 目录下并重命名

sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

3、设定 docker-compose 的执行权限

sudo chmod +x /usr/local/bin/docker-compose

4、查询 docker-compose 版本以确认是否成功安装

docker-compose -v

出现下面内容安装成功

 

三、HOJ单体部署

1、选择好需要安装的位置,运行下面命令

git clone https://gitee.com/himitzh0730/hoj-deploy.git && cd hoj-deploy

2、进入到单体部署的配置文件夹

cd standAlone

3、查看文件,使用命令ll 可以查看到 standAlone文件夹下有两个文件

├── docker-compose.yml
├── .env

4、修改配置文件里面的默认配置

vim .env

简单测试可以不改,但正式部署请修改默认配置的密码!

各项配置请看文件内说明,一般请修改默认为hoj123456的三个密码配置项即可,如下:

  • 缓存Redis的密码配置项:REDIS_PASSWORD
  • 数据库MySQL的密码配置项:MYSQL_ROOT_PASSWORD
  • 服务注册中心Nacos的密码配置项:NACOS_PASSWORD

5、安装和启动服务

docker-compose up -d

根据网速情况,大约十到二十分钟拉取镜像,全程无需人工干预,拉取完毕后,自动启动容器服务,大概需要一至两分钟的初始化。

6、查看服务状态

docker ps -a

当看到所有的容器的状态status都为UPhealthy就代表 OJ 已经启动成功。

7、查看HOJ网站:

打开浏览器,访问http://服务器ip,如若正常,即可看到OJ首页。

默认唯一的超级管理员账号如下,请注意之后点击页面右上角头像选择我的设置修改默认密码!

账号: root
密码: hoj123456

如果出现以下界面,请先重启一遍系统。

如果还是出现不停的提示“服务器错误,请重新刷新”,小伙子不要慌,有两个可能,数据库连接还没有加载完,还有一种可能还是数据库连接还没有加载完,所以你有两个办法,第一个办法是直接重启,第二个办法是,不好意思就不是直接重启了,就是到docker-compose.yml文件所在目录(standAlone文件夹下)执行docker-compose down,完事之后再执行docker-compose up -d,注意这个-d是后台执行的意思,so,打开127.0.0.1运行一下试试,没作用那就再次重启,重启之后还是有问题,他娘的,直接等等。(其实听他的,一直刷新,然后等待就好了,反正是数据库有延迟)具体可以看我的另一篇笔记:传送门

8、网站初始化配置:

请一定要看下一篇文章:网站配置 

9、参数说明以及网站性能提升

请看本文章的第三点:默认参数说明

特别提醒虚拟机安装的,到这步一定要存个快照,接下来的npm安装容易出错。

 

四、npm安装

1、先安装nodejs

apt install nodejs

2、检查版本

nodejs -v

3、更换镜像源(更多的源见:传送门

npm config set registry http://mirrors.cloud.tencent.com/npm/

4、安装npm

apt install npm

5、检查版本

npm -v

6、进入docker-compose目录运行命令

npm install

7、下载完毕之后进入dist文件夹进行打包

npm install build

8、之后按照官网的执行即可。

posted @ 2024-11-01 22:56  随手一只风  阅读(81)  评论(0编辑  收藏  举报