mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2025-11-04 14:49:58 +08:00
update deploy
This commit is contained in:
parent
b1793d29a2
commit
4054dfa41c
1
.gitignore
vendored
1
.gitignore
vendored
@ -68,4 +68,3 @@ custom_settings.py
|
|||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
*.zip
|
*.zip
|
||||||
rsyncd.passwd
|
rsyncd.passwd
|
||||||
oj.conf
|
|
||||||
@ -7,5 +7,4 @@ ADD . /code
|
|||||||
WORKDIR /code
|
WORKDIR /code
|
||||||
RUN pip install -i https://pypi.douban.com/simple -r dockerfiles/oj_web_server/requirements.txt
|
RUN pip install -i https://pypi.douban.com/simple -r dockerfiles/oj_web_server/requirements.txt
|
||||||
RUN python tools/release_static.py
|
RUN python tools/release_static.py
|
||||||
EXPOSE 80
|
|
||||||
CMD bash /code/dockerfiles/oj_web_server/run.sh
|
CMD bash /code/dockerfiles/oj_web_server/run.sh
|
||||||
|
|||||||
56
dockerfiles/oj_web_server/oj.conf
Normal file
56
dockerfiles/oj_web_server/oj.conf
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
worker_processes 1;
|
||||||
|
user www-data;
|
||||||
|
error_log /dev/stderr warn;
|
||||||
|
daemon off;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
# access_log /dev/stdout main;
|
||||||
|
access_log off;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
#tcp_nopush on;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_types application/javascript text/css;
|
||||||
|
|
||||||
|
upstream backend {
|
||||||
|
server 127.0.0.1:8080;
|
||||||
|
keepalive 32;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
server_name _;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
client_max_body_size 200M;
|
||||||
|
|
||||||
|
location /static/upload {
|
||||||
|
expires max;
|
||||||
|
alias /code/upload;
|
||||||
|
}
|
||||||
|
location /static {
|
||||||
|
etag off;
|
||||||
|
expires max;
|
||||||
|
alias /code/static/release;
|
||||||
|
}
|
||||||
|
location / {
|
||||||
|
proxy_pass http://backend;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -2,7 +2,7 @@ django==1.9.6
|
|||||||
MySQL-python
|
MySQL-python
|
||||||
redis
|
redis
|
||||||
django-redis-sessions
|
django-redis-sessions
|
||||||
djangorestframework
|
djangorestframework==3.2.5
|
||||||
django-rest-swagger
|
django-rest-swagger
|
||||||
gunicorn
|
gunicorn
|
||||||
coverage
|
coverage
|
||||||
|
|||||||
@ -6,7 +6,7 @@ from .models import JudgeServer
|
|||||||
|
|
||||||
class CreateJudgesSerializer(serializers.Serializer):
|
class CreateJudgesSerializer(serializers.Serializer):
|
||||||
name = serializers.CharField(max_length=30)
|
name = serializers.CharField(max_length=30)
|
||||||
ip = serializers.IPAddressField()
|
ip = serializers.CharField(max_length=128)
|
||||||
port = serializers.IntegerField()
|
port = serializers.IntegerField()
|
||||||
# 这个服务器最大可能运行的判题实例数量
|
# 这个服务器最大可能运行的判题实例数量
|
||||||
max_instance_number = serializers.IntegerField()
|
max_instance_number = serializers.IntegerField()
|
||||||
@ -16,7 +16,7 @@ class CreateJudgesSerializer(serializers.Serializer):
|
|||||||
class EditJudgesSerializer(serializers.Serializer):
|
class EditJudgesSerializer(serializers.Serializer):
|
||||||
id = serializers.IntegerField()
|
id = serializers.IntegerField()
|
||||||
name = serializers.CharField(max_length=30)
|
name = serializers.CharField(max_length=30)
|
||||||
ip = serializers.IPAddressField()
|
ip = serializers.CharField(max_length=128)
|
||||||
port = serializers.IntegerField()
|
port = serializers.IntegerField()
|
||||||
# 这个服务器最大可能运行的判题实例数量
|
# 这个服务器最大可能运行的判题实例数量
|
||||||
max_instance_number = serializers.IntegerField()
|
max_instance_number = serializers.IntegerField()
|
||||||
|
|||||||
@ -47,8 +47,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>IP</label>
|
<label>地址</label>
|
||||||
<input name="ip" type="text" class="form-control" ms-duplex="ipAddress" placeholder="IP" required data-error="请填写合法的IP地址">
|
<input name="ip" type="text" class="form-control" ms-duplex="ipAddress" placeholder="IP 或域名" required data-error="请填写合法的地址">
|
||||||
<div class="help-block with-errors"></div>
|
<div class="help-block with-errors"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -100,8 +100,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>IP</label>
|
<label>地址</label>
|
||||||
<input name="ip" type="text" class="form-control" id="ipAddress" placeholder="IP" required data-error="请填写合法的IP地址">
|
<input name="ip" type="text" class="form-control" id="ipAddress" placeholder="IP 或域名" required data-error="请填写合法的地址">
|
||||||
<div class="help-block with-errors"></div>
|
<div class="help-block with-errors"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -2,13 +2,13 @@
|
|||||||
<label>选择语言</label>
|
<label>选择语言</label>
|
||||||
<div>
|
<div>
|
||||||
<label class="radio-inline">
|
<label class="radio-inline">
|
||||||
<input type="radio" name="language" value="1" checked> C (GCC 4.8)
|
<input type="radio" name="language" value="1" checked> C (GCC 5.4)
|
||||||
</label>
|
</label>
|
||||||
<label class="radio-inline">
|
<label class="radio-inline">
|
||||||
<input type="radio" name="language" value="2"> C++ (G++ 4.3)
|
<input type="radio" name="language" value="2"> C++ (G++ 5.4)
|
||||||
</label>
|
</label>
|
||||||
<label class="radio-inline">
|
<label class="radio-inline">
|
||||||
<input type="radio" name="language" value="3"> Java (Oracle JDK 1.7)
|
<input type="radio" name="language" value="3"> Java (Oracle JDK 1.8)
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -22,4 +22,4 @@
|
|||||||
提交代码
|
提交代码
|
||||||
</button>
|
</button>
|
||||||
<img src="/static/img/loading.gif" id="loading-gif">
|
<img src="/static/img/loading.gif" id="loading-gif">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -25,11 +25,11 @@
|
|||||||
|
|
||||||
<h4>编译参数</h4>
|
<h4>编译参数</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>C(GCC 4.8)</li>
|
<li>C(GCC 5.4)</li>
|
||||||
<pre>gcc -DONLINE_JUDGE -O2 -w -std=c99 {src_path} -lm -o {exe_path}main</pre>
|
<pre>gcc -DONLINE_JUDGE -O2 -w -std=c99 {src_path} -lm -o {exe_path}main</pre>
|
||||||
<li>C++(G++ 4.3)</li>
|
<li>C++(G++ 5.4)</li>
|
||||||
<pre>g++ -DONLINE_JUDGE -O2 -w -std=c++11 {src_path} -lm -o {exe_path}main</pre>
|
<pre>g++ -DONLINE_JUDGE -O2 -w -std=c++11 {src_path} -lm -o {exe_path}main</pre>
|
||||||
<li>Java(Oracle JDK 1.7)</li>
|
<li>Java(Oracle JDK 1.8)</li>
|
||||||
<pre>
|
<pre>
|
||||||
//编译
|
//编译
|
||||||
javac {src_path} -d {exe_path}
|
javac {src_path} -d {exe_path}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user