跳到主要内容

Docker Compose 快速部署

前言

本章节中只描述如何做到最快速地搭建一个 SDUOJ,不建议长期用作生产。

注意

SDUOJ 尚未发布第一个稳定版本,对于生产用途 SDUOJ 开发者建议大家持观望态度。

先决条件

操作系统

  • Linux(已测试:Ubuntu 20.04, Ubuntu 22.04, Debian 10)
  • macOS(已测试:Ventura 13.4.1)
  • Windows(不支持!)

必备软件

可使用以下命令验证:

git version
docker -v
docker compose version

安装必备软件(在 Ubuntu、Debian 系统)

如果您的环境已装有,请跳过这一步

export DOWNLOAD_URL="https://mirrors.cernet.edu.cn/docker-ce"
sudo apt-get update \
&& sudo apt-get install -qq -y curl git \
&& curl -fsSL https://get.docker.com/ | sudo -E sh

单机部署(伪分布式,All-in-One)

尝鲜机器建议
  • 在云服务厂商使用按量计费模式开启一个云服务器,16G 或以上大小的内存
  • 虚拟机上安装一个 Linux 发行版(强烈推荐 Ubuntu 22.04)

如果您只是打算尝试简单地部署一个 SDUOJ,对其进行探索和尝鲜的话,执行以下指令即可:

  • 拉取 sduoj-deploy 项目代码
git clone https://github.com/SDUOJ/sduoj-deploy.git
  • 进入 sduoj-deploy 项目目录
cd sduoj-deploy
  • 执行 docker compose(注意不是 docker-compose)启动编排好的各个服务
sudo docker compose up
  • 在 URL 中访问你的服务器 IP 即可,例如:http://127.0.0.1:80/,其中 127.0.0.1 换成你的服务器 IP

一些初始账号如下,安全起见请注意修改:

  • SDUOJ 的初始账号密码分别为 superadmin123456,注意修改。
  • Nacos 的初始账号密码分别为 sduojsduoj,注意修改。
  • MySQL 的初始账号密码分别为 sduojsduoj,注意修改。
注意

数据库、消息队列、Nacos 服务的端口是暴露的,如果是在公有云上进行临时生产,建议配置网络安全组,仅暴露需要的 22、80 等端口。在自己的物理服务器上同理。