0.背景

上一篇文章中,centos(宝塔)搭建HOJ(1)—部署 – 每天进步一点点 (longkui.site)

我们简单搭建了HOJ,但是也有一些问题,因为基于docker部署的,有些端口和我服务器上搭建的本来的端口冲突,所以这篇文章简单介绍一下如何修改端口,让我们的OJ和我本来程序共存。

1.依赖关系

根据给的docker-compose.yml文件,依赖关系如下:

2.解决的问题

从上一篇来看,主要冲突的端口是80端口和3306端口,前者我已经有一网站占用这个端口了,后者是mysql的默认端口也已经占用了,主要介绍一下如何修改80端口和mysql 3306端口冲突,让oj和现有网站共存。

我们来到 hoj-deploy/standAlone 文件夹下面,找到docker-compose.yml 文件,打开编辑。

我们找到hoj-frontend

我们把ports端口改成下面的样子:

  ports:
      - "8081:80"

意思是让外部的8081端口对应docker的80端口。这样就不会和外部的默认80端口的网站有冲突了。

然后我们在docker-compose.yml文件的位置执行命令:

docker-compose up -d

然后,我们就可以看到前台的对外端口已经变成8081了

那么,我们就可以通过IP:端口的形式来访问我们搭建好的OJ了。

如何解决mysql 端口冲突?也很简单,我们不能改docker-compose.yml 文件。

我们打开 .env文件

把里面的mysql的3306端口的映射找到,然后改成别的端口,比如3307。

然后在这个文件夹下重写 docker-compose up -d

这样就和原来的mysql3306端口不冲突了。