马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zhangjinxuan 于 2023-7-27 21:09 编辑
容器安装时,遇到了以下问题:
[root@centos ~]# sudo docker pull universaloj/uoj-system
Using default tag: latest
latest: Pulling from universaloj/uoj-system
Digest: sha256:4dea76153cdc46269bbaa5e0ffa0d2c41ddd5cbdb10cd06dd83965340bc35de3
Status: Image is up to date for universaloj/uoj-system:latest
docker.io/universaloj/uoj-system:latest
[root@centos ~]# sudo docker run --name uoj -dit -p 43253:80 --cap-add SYS_PTRACE universaloj/uoj-system
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
1cae7f99b429c31378d41357c23bba250d051d891e98eda5bf64c3b0411fb95b
启动时,也没有什么报错,就正常启动:
[root@centos ~] systemctl start docker
[root@centos ~] docker start uoj
uoj
可是当我查看容器状态的时候,遇到了问题(复制不了,简单说一说大意):
[root@centos ~] docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cae7f99b429 universaloj/uoj-system "/bin/sh -c /opt/up" 26 minutes ago Exited (1) About a minute ago uoj
这是日志的内容:
exec /bin/sh: exec format error
exec /bin/sh: exec format error
exec /bin/sh: exec format error
exec /bin/sh: exec format error
exec /bin/sh: exec format error
就一直 exec format error,一直启动不了,有谁知道这是什么意思吗,怎么解决呢,希望大神解答一下。
本帖最后由 isdkz 于 2023-6-14 21:34 编辑
docker已经安装前面的大部分步骤可以忽略
这篇文档将指导您以传统方式安装UOJ。
本文与《一键安装UOJ》只需选择一个执行。推荐使用《一键安装UOJ》。
相较于一键安装,传统安装可能耗费更多的时间。
这篇教程与vfk的readme文档有严重不同。
如果您选择传统安装,建议按照本文的方式安装,这将省去很多不必要的麻烦。
安装前的准备
您需要准备一台 64位的Linux系统。
然后您需要安装 docker。它是一个容器技术,暂且可以理解成虚拟机。 sudo apt install docker.io # ubuntu, debian系统请使用这条指令
sudo yum install docker # CentOS系统请使用这条指令
sudo service docker start # 启动docker服务
另外,您可以通过下面的代码安装docker加速器(强烈推荐): sudo su
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://3a834d99.m.daocloud.io
service docker restart
下载UOJ的源码: git clone https://github.com/UniversalOJ/UOJ-System.git # 用不了的话请使用备用:git clone https://gitee.com/Hoo1941/UOJ-System.git
- JDK7u76
- JDK8u31
然后把它们放进docker/目录,替换掉jdk-7u76-linux-x64.tar.gz和jdk-8u31-linux-x64.tar.gz。
安装
接着,您需要执行下面的指令来开始安装。请注意不是docker/目录下的同名文件。
如果安装过程顺利的话,您将会看到Successfully built。
启动
安装完成后,您取得了一个镜像。现在您需要建立一个容器,用于运行UOJ: sudo docker run --name uoj -dit -p 80:80 -p 3690:3690 --cap-add SYS_PTRACE uoj
接下来这个容器将在后台运行。
上面的代码是用于新建一个UOJ,重启服务器后不要使用docker run来启动容器。具体参阅维护文档。
如果您不希望用80端口来运行uoj,您可以把上面的-p 80:80改成-p <port>:80。
|