diff --git a/judge/Dockerfile b/dockerfiles/judger/Dockerfile similarity index 100% rename from judge/Dockerfile rename to dockerfiles/judger/Dockerfile diff --git a/judge/sources.list b/dockerfiles/judger/sources.list similarity index 100% rename from judge/sources.list rename to dockerfiles/judger/sources.list diff --git a/Dockerfile b/dockerfiles/oj_web_server/Dockerfile similarity index 86% rename from Dockerfile rename to dockerfiles/oj_web_server/Dockerfile index 113ed588..07a73e9f 100644 --- a/Dockerfile +++ b/dockerfiles/oj_web_server/Dockerfile @@ -4,4 +4,5 @@ RUN mkdir -p /code/log /code/test_case /code/upload WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt -EXPOSE 8010 \ No newline at end of file +EXPOSE 8010 +CMD supervisord \ No newline at end of file diff --git a/dockerfiles/oj_web_server/gunicorn.conf b/dockerfiles/oj_web_server/gunicorn.conf new file mode 100644 index 00000000..3ad64967 --- /dev/null +++ b/dockerfiles/oj_web_server/gunicorn.conf @@ -0,0 +1,16 @@ +[program:gunicorn] + +command=gunicorn oj.wsgi:application -b 0.0.0.0:8080 --reload + +directory=/code/ +user=root +numprocs=1 +stdout_logfile=/code/log/gunicorn.log +stderr_logfile=/code/log/gunicorn.log +autostart=true +autorestart=true +startsecs=5 + +stopwaitsecs = 6 + +killasgroup=true \ No newline at end of file diff --git a/dockerfiles/oj_web_server/mq.conf b/dockerfiles/oj_web_server/mq.conf new file mode 100644 index 00000000..9dbce3e4 --- /dev/null +++ b/dockerfiles/oj_web_server/mq.conf @@ -0,0 +1,16 @@ +[program:mq] + +command=python manage.py runscript mq + +directory=/code/qduoj/ +user=root +numprocs=1 +stdout_logfile=/code/log/mq.log +stderr_logfile=/code/log/mq.log +autostart=true +autorestart=true +startsecs=5 + +stopwaitsecs = 6 + +killasgroup=true \ No newline at end of file diff --git a/requirements.txt b/dockerfiles/oj_web_server/requirements.txt similarity index 100% rename from requirements.txt rename to dockerfiles/oj_web_server/requirements.txt diff --git a/dockerfiles/oj_web_server/supervisord.conf b/dockerfiles/oj_web_server/supervisord.conf new file mode 100644 index 00000000..420b65f4 --- /dev/null +++ b/dockerfiles/oj_web_server/supervisord.conf @@ -0,0 +1,26 @@ +[unix_http_server] +file=/tmp/supervisor.sock ; path to your socket file + +[supervisord] +logfile=/code/log/supervisord.log ; supervisord log file +logfile_maxbytes=50MB ; maximum size of logfile before rotation +logfile_backups=10 ; number of backed up logfiles +loglevel=info ; info, debug, warn, trace +pidfile=/code/log/supervisord.pid ; pidfile location +nodaemon=true ; run supervisord as a daemon +minfds=1024 ; number of startup file descriptors +minprocs=200 ; number of process descriptors +user=root ; default user +childlogdir=/code/log/ ; where child log files will live + + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock ; use unix:// schem for a unix sockets. + + +[include] + +files=gunicorn.conf mq.conf \ No newline at end of file diff --git a/tools/celeryd.conf b/tools/celeryd.conf new file mode 100644 index 00000000..60e3fc21 --- /dev/null +++ b/tools/celeryd.conf @@ -0,0 +1,15 @@ +[program:celery] +command=celery worker -A judge.judger_controller --loglevel=DEBUG + +directory=/root/qduoj/ +user=root +numprocs=1 +stdout_logfile=/root/log/celery_worker.log +stderr_logfile=/root/log/celery_worker.log +autostart=true +autorestart=true +startsecs=5 + +stopwaitsecs = 6 + +killasgroup=true diff --git a/tools/supervisord.conf b/tools/supervisord.conf new file mode 100644 index 00000000..1494d7cd --- /dev/null +++ b/tools/supervisord.conf @@ -0,0 +1,26 @@ +[unix_http_server] +file=/tmp/supervisor.sock ; path to your socket file + +[supervisord] +logfile=/root/log/supervisord.log ; supervisord log file +logfile_maxbytes=50MB ; maximum size of logfile before rotation +logfile_backups=10 ; number of backed up logfiles +loglevel=info ; info, debug, warn, trace +pidfile=/root/log/supervisord.pid ; pidfile location +nodaemon=false ; run supervisord as a daemon +minfds=1024 ; number of startup file descriptors +minprocs=200 ; number of process descriptors +user=root ; default user +childlogdir=/root/log/ ; where child log files will live + + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock ; use unix:// schem for a unix sockets. + + +[include] + +files=*.conf \ No newline at end of file