其它
本地开发

本地开发

建议使用 Archlinux 等具有新版内核的发行版进行本地开发。进行本地开发仅需使用普通用户,不需要 root 权限。

环境要求

  • Golang 1.19
  • Cargo 1.69.0+
  • rustc 1.69.0+

调试安全沙箱

runj 文件夹下存在 Makefile,通过 make build 即可构建安全沙箱并将可执行文件保存到 runj/bin 中。

对于运行单元测试和集成测试的具体方法,请参考 runj 文件夹下的 README.md

调试评测服务

Seele 的仓库中提供了 Dockerfile.dev 用于本地开发的打包。可以通过 docker build -f Dockerfile.dev . 构建 Seele 评测系统,包括评测服务程序和安全沙箱程序。构建完成后可按照 Docker 部署的方法启动评测系统。

如果要使用调试器或 cargo run 直接启动评测服务,请参照下面的步骤:

  • 在 Archlinux 上需要额外安装 systemd-libsprotobuf,对于 Ubuntu 则需要额外安装 libsystemd-devprotobuf-compiler
  • 参考下面的配置文件
config.toml
log_level = "info"
work_mode = "bare"
 
[paths]
root = '/home/user/seele/root'
runj = '/home/user/seele/runj/bin/runj'
 
[worker.action.run_container]
userns_user = "user"
userns_uid = 1000
userns_gid = 1000