DualOJ-Judge is the judge module of DualOJ (WIP), basically written in Rust language.
WARNING:
- This component DO NOT need to be exposed.
- This project are still Work In Progress.
This module can make DualOJ able to let problem-solvers & judgers to use Dockerfile
customize environment and dependencies.
This means it is no longer necessary to use some extreme methods to optimize performance in most case, or copy & paste code for reusing.
kubernetes cluster
, can use kubectl to manage, with aningress-controller
and an innerregistry
.- recommended to use minikube with
ingress
andregistry
addons for dev. - or if you use a bare metal cluster, setting up registry domain with inner network & outter network in
manifests/01-registry.yml
- recommended to use minikube with
OpenSSL
or something can be used to generate Self-signed SSL Certifications.- recommended to use mkcert.
And next steps will consider you using a recommended configuration.
Cause for using BuildKit securely, must generate a self-signed certification first.
You can simply do tools/mkcerts.sh
for this step.
It is recommended to assign at least 4 CPU cores and 8 GB of memory, with embeded certification be generated in last step: minikube start --cpus=4 --memory=8192 --embed-certs
For minikube
user, you can easily do tools/minikube-update.sh
for this step.
Just kubectl apply -f ./manifests
.
So if you complete a new feature or just for test, you can use tools/minikube-update.sh
to build and update using changed new sources.
(For minikube
only)
If you need to invoke some commands, you can use cargo run --bin=client
to run a client.
And you may need to add --tls-ca-cert=".cert/client/ca.pem"
flag to trust CA Certificate generated above.
Build Judger
image & Solver
image
Some Option should be tested:
Some Option should be tested: