-
Notifications
You must be signed in to change notification settings - Fork 6
Maintenance
Outvi V edited this page Feb 15, 2020
·
2 revisions
This page is written in Chinese in consideration of main audiences.
SchOJ 企划是一个基于 DMOJ 的 Docker Compose 项目。由三部分组成:
- 网站端
site(Dockerfile,站点代码) - 评测端
judge(Dockerfile,评测机代码) - 兼容 MySQL 的数据库
db。docker-compose.yml中默认指定的是 Mariadb 10.3.10。
data/site:网站端源代码。在更新 site 镜像后请清空或删除此文件夹。 首次运行网站端容器时,构建容器时的网站端源码会被复制至此,便于调试和后续维护。
data/problems (1, 2):题目文件库。此目录由网站端和所有评测端共享。
data/database:数据库。由于 InnoDB,强行停止数据库容器时,数据库文件可能发生损坏。
通常需要备份的文件:
- 数据库(建议使用
mysqldump备份。可以热备份。) - 网站端的配置文件
dmoj/local_settings.py(包含用户密码加密密钥SECRET_KEY,不应丢失或泄露。可以热备份。) - 题目文件库 (可以热备份。)
你可能还想备份的文件:
- 网站的 SSL 证书公私钥
网站端的操作不当可能造成数据的永久丢失。请在升级网站端前完整备份 OJ 服务。
通常可以直接更新 data/site 而无需更新 site 所使用的镜像。
升级评测端时不需停止网站端,通常升级失败也不会造成数据损失。只需确保站点上有不少于一个的活动评测端,网站即可正常工作。对于有多个评测端的站点,建议先升级部分评测端,确定稳定后再升级全部评测端。
可能可以直接更新所使用的数据库镜像。建议更新前备份数据库。