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端口不冲突了。