【GoJudge部署系列】文章介绍

前言

  楼主想做一个在线编程的网站,类似于各大高校的OJ系统,洛谷、牛客、Letcode等网站。经过深入研究一段时间后,发现网上开源OJ质量参差不齐,很难达到自己想要的效果,因此就想自己研发一个。楼主技术栈:Java、SpringBoot、Vue,刚好和HOJ类似,因此楼主仔细学习了HOJ的底层,其使用的是go-judge判题机,本系列文章记录如何基于go-judge搭建自己的判题机,如何基于阿里云、腾讯云部署自己的go-judge服务,同时给出常见的判题语言的请求样例,包括Java、Python2、Python3、C、C++,因为go-judge官网只给了C的调用样例,没有其他语言,本系列文章补充了其他语言,并测试通过,供参考。

    如果你想通过Docker镜像部署判题机,但官方的镜像始终下载不下来,可参考本专栏的一篇文章,介绍如何下载官网镜像,也可以私信楼主获取。国内机器下载外网Docker镜像的解决方案如何下载Dockerhub官网的镜像下载criyle/go-judge:latest镜像

文章目录

【GoJudge部署系列01】go-judge环境搭建-gojudge简介

【GoJudge部署系列02】GoJudge部署之服务器直接部署

【GoJudge部署系列03】判题机部署-GoJudge部署之Docker部署

【GoJudge部署系列04】如何修改运行参数?比如增加token验证、修改默认端口、增加资源限制等

【GoJudge部署系列05】构建自己的判题镜像构建自己的go-judge镜像

【GoJudge部署系列06】go-judge请求样例请求参数样例Run接口请求举例(C、C++、Java、Python)

【GoJudge部署系列07】go-judge部署常见问题汇总 

国内机器下载外网Docker镜像的解决方案如何下载Dockerhub官网的镜像下载criyle/go-judge:latest镜像 

内容介绍

文章01

【GoJudge部署系列01】go-judge环境搭建-gojudge简介

内容包括:    

简要介绍go-judge,对其有个认知,支持两种部署方式:直接服务器部署、Docker部署,在后续文章中将逐个介绍。

文章02

【GoJudge部署系列02】GoJudge部署之服务器直接部署

内容包括:   

介绍如何基于服务器直接部署go-judge判题服务,楼主使用的是腾讯云轻量应用服务器,也可以使用阿里云,操作都是类似的。内容包括:下载文件->上传到云服务器->解压包->启动go-judge->开放端口访问->修改启动命令行参数测试效果->PostMan测试调用->以后台方式运行。

文章03

【GoJudge部署系列03】判题机部署-GoJudge部署之Docker部署

内容包括:   

介绍如何基于Docker部署go-judge判题服务;CentOS开启用户命名空间;单机多Docker实例部署;

生产环境下一般不会服务器直接部署沙箱,尽量在Docker中运行,安全性更高,有以下好处:

1)Docker中可以通过参数限制内存等资源大小;

2)可以开启多个Docker实例,相当于多个判题服务进行判题

在服务器内核+内存较大,比如单机16核+32G,就可以开启多个小资源的docker实例来劲习性判题。

宿主服务器可以再写一个统一调度的服务,通过他来协调各个Docker判题服务节点。

文章04

【GoJudge部署系列04】如何修改运行参数?比如增加token验证、修改默认端口、增加资源限制等

内容包括:    

有时候我们运行go-judge服务,可能想更改默认端口,并不想监听5050;或者想开启go-judge的鉴权功能,开启监控,增加资源限制等等。这时候就需要一些参数来控制。

go-judge有多个参数可以调整,所有命令行参数都可以通过环境变量的形式来指定,(类似 ES_HTTP_ADDR 来指定 -http-addr)。使用 go-judge --help 查看所有环境变量。

文章05

【GoJudge部署系列05】构建自己的判题镜像构建自己的go-judge镜像

内容包括:       

   go-judge官网提供的docker部署方式,是基于criyle/go-judge镜像,这个镜像是最小化的linux环境,不支持python、java、c++;如果希望有一个多语言的判题环境,则需要自己构建镜像部署。本文则介绍构建镜像的步骤,以及可参考的镜像文件(Dockerfile)有哪些。

 

文章06

【GoJudge部署系列06】go-judge请求样例请求参数样例Run接口请求举例(C、C++、Java、Python)

      go-judge部署好之后,启动之后,各个语言如何调用,如何传参,官网只给了一个简单的C语言的例子。本文基于开源HOJ的请求方式,拦截了各种语言判题时,HOJ传给go-judge的参数,来学习借鉴如何传参。Run接口的传参:C、C++、Java、Python2、Python3支持这四个语言即可。

文章07

【GoJudge部署系列07】go-judge部署常见问题汇总

 sudo apt-get update apt install执行慢的解决方法,更换镜像源

apt install g++报Unable to locate package

CentOS7系统需要开启User命名空间才能使用Docker部署沙箱

GoJudge官网源码压缩包无法下载,Chrome浏览器等均提示有病毒,或者无法解压

git clone时报错

Docker内安装语言包等问题

关键字:

GoJudge部署系列,判题机部署-GoJudge部署之服务器部署,go-judge本地部署,服务器部署,online judge系统部署,竞赛训练系统部署,判题机部署,判题机搭建,C语言判题环境,Java判题环境,C++判题环境,如何设置go-judge外网访问,go-judge请求参数样例,go-judge请求返回样例。如何下载docker镜像,国内机器下载外网Docker镜像的解决方案如何下载Dockerhub官网的镜像下载criyle/go-judge:latest镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风浪仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值