UOJ安装指南

该博客详细介绍了如何在Ubuntu 16.04环境下安装Docker,包括升级源、安装Docker引擎、运行hello-world测试。然后,博主分享了下载和安装UOJ的步骤,包括解决Docker镜像问题、安装过程中遇到的JDK缺失问题,以及处理80端口被占用的问题。整个过程适合对Linux和Docker有一定了解的读者。

linux环境 Ubuntu 16.04

第一步 docker安装

apt-get安装的不一定是最新的docker,安装版本是1.10.2,不过,对于docker使用没任何什么问题,如果要后续升级方便,建议使用下面的方法。
1.切换到root权限或者用sudo
2.升级source列表并保证https和ca证书成功安装

apt-get update

apt-get install apt-transport-https ca-certificates

3.增加新的GPG 密钥

apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

4.新增或编辑source列表里的docker.list文件

vi /etc/apt/sources.list.d/docker.list //如果不存在就新增

5.删除已有的entries
6.按照系统版本增加entry(Ubuntu Xenial 16.04 (LTS))

deb https://apt.dockerproject.org/repo ubuntu-xenial main

7.重新执行更新操作,并删除老的repo

apt-get purge lxc-docker //没有安装的话,跳过

8.查看是否有正确的可用版本

apt-cache policy docker-engine

如图:
这里写图片描述

9.安装docker

apt-get update

apt-get install docker-engine

service docker start

docker run hello-world

第二步 下载uoj并安装

git clone https://github.com/vfleaking/uoj

cd uoj

./install

This is a dockerized version of UOJ. Before installation, please make sure that Docker has already been installed on your OS.
The docker image of UOJ is 64-bit, so a 32-bit host OS may cause installation failure.

1.此时报错"Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout"百度后发现大概就是被墙的原因…
只能不用官方的dockhub了,转而使用国内的仓库daocloud,请自行注册账号获取地址。

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://???.m.daocloud.io

service docker restart

2.此时又报错缺少jdk
下载jdk-7u76-linux-x64.tar.gz和jdk-8u31-linux-x64.tar.gz并放入 "./docker/"目录下再次install 成功!

返回 Successfully built < image-id >

3.运行

docker run -it -p 80:80 -p 3690:3690 < image-id >

此时又报错80端口被占用…那就查看一下谁在用吧

lsof -i:80

发现原来是之前尝试搭其他服务器的时候没有关闭Nginx

service nginx stop

4.继续尝试运行
sudo docker run --name uoj -dit -p 80:80 -p 3690:3690 -p 5678:5678 -p 6789:6789 --cap-add SYS_PTRACE uoj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值