From c516f4f1c9b5835f2f179cb568ca2f42e6b8b943 Mon Sep 17 00:00:00 2001 From: Ahmad Alsultan Date: Mon, 27 Mar 2023 11:05:31 +0200 Subject: [PATCH 1/5] update nodejs and typescript --- Dockerfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Dockerfile b/Dockerfile index 59fe5926..9d69ed2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,6 +35,15 @@ RUN cat /etc/cron.d/* | crontab - COPY . . +RUN npm cache clean -f +RUN npm install -g n +RUN sudo n 18.15.0 +RUN npm install --global typescript + +COPY isolate_job.rb /api/app/jobs/isolate_job.rb + +RUN chmod -R 777 /api + ENTRYPOINT ["/api/docker-entrypoint.sh"] CMD ["/api/scripts/server"] From 1249b1ce9301b1400f1aba81310bd3cc828c162a Mon Sep 17 00:00:00 2001 From: Ahmad Alsultan Date: Mon, 27 Mar 2023 12:32:21 +0200 Subject: [PATCH 2/5] allow compiling to access internet, edit docker-compose file to build the image from the current repo, fix the wait problem while submitting --- app/controllers/submissions_controller.rb | 6 +++--- app/jobs/isolate_job.rb | 1 + docker-compose.yml | 8 ++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 2f428634..7d4058d7 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -105,14 +105,14 @@ def create if submission.save if @wait begin - IsolateRunner.perform_now(submission) + IsolateJob.perform_now(submission) submission.reload render json: submission, status: :created, base64_encoded: @base64_encoded, fields: @requested_fields rescue Encoding::UndefinedConversionError => e render_conversion_error(:created, submission.token) end else - IsolateRunner.perform_later(submission) + IsolateJob.perform_later(submission) render json: submission, status: :created, fields: [:token] end else @@ -143,7 +143,7 @@ def batch_create submissions.each do |submission| if submission.save - IsolateRunner.perform_later(submission) + IsolateJob.perform_later(submission) response << { token: submission.token } has_valid_submission = true else diff --git a/app/jobs/isolate_job.rb b/app/jobs/isolate_job.rb index b4c345bd..68fb43bc 100644 --- a/app/jobs/isolate_job.rb +++ b/app/jobs/isolate_job.rb @@ -139,6 +139,7 @@ def compile initialize_file(compile_output_file) command = "isolate #{cgroups} \ + --share-net \ -s \ -b #{box_id} \ -M #{metadata_file} \ diff --git a/docker-compose.yml b/docker-compose.yml index c96d2342..f8a2ad6d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,9 @@ x-logging: services: server: - image: judge0/judge0:latest + build: + context: . + dockerfile: Dockerfile.update volumes: - ./judge0.conf:/judge0.conf:ro ports: @@ -19,7 +21,9 @@ services: restart: always worker: - image: judge0/judge0:latest + build: + context: . + dockerfile: Dockerfile.update command: ["./scripts/workers"] volumes: - ./judge0.conf:/judge0.conf:ro From 538fde76790076b56ee6f067646f3e701ba3aa3d Mon Sep 17 00:00:00 2001 From: Ahmad Alsultan Date: Mon, 27 Mar 2023 12:47:52 +0200 Subject: [PATCH 3/5] fix Dockerfile --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9d69ed2a..d7bb074b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,8 +40,6 @@ RUN npm install -g n RUN sudo n 18.15.0 RUN npm install --global typescript -COPY isolate_job.rb /api/app/jobs/isolate_job.rb - RUN chmod -R 777 /api ENTRYPOINT ["/api/docker-entrypoint.sh"] From 50d2d871b597193b6e2067469c5f299717221ea9 Mon Sep 17 00:00:00 2001 From: Ahmad Alsultan Date: Mon, 27 Mar 2023 12:57:46 +0200 Subject: [PATCH 4/5] fix Dockerfile --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f8a2ad6d..7a04c2e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ services: server: build: context: . - dockerfile: Dockerfile.update + dockerfile: Dockerfile volumes: - ./judge0.conf:/judge0.conf:ro ports: @@ -23,7 +23,7 @@ services: worker: build: context: . - dockerfile: Dockerfile.update + dockerfile: Dockerfile command: ["./scripts/workers"] volumes: - ./judge0.conf:/judge0.conf:ro From b86d9514bc463cff4394dba2bd419fcb5e01a670 Mon Sep 17 00:00:00 2001 From: Ahmad Alsultan Date: Mon, 27 Mar 2023 14:45:18 +0200 Subject: [PATCH 5/5] update active languages list --- db/languages/active.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/db/languages/active.rb b/db/languages/active.rb index 069a6ac2..50fbde85 100644 --- a/db/languages/active.rb +++ b/db/languages/active.rb @@ -157,10 +157,10 @@ }, { id: 63, - name: "JavaScript (Node.js 12.14.0)", + name: "JavaScript (Node.js 18.15.0)", is_archived: false, source_file: "script.js", - run_cmd: "/usr/local/node-12.14.0/bin/node script.js" + run_cmd: "node script.js" }, { id: 64, @@ -239,11 +239,11 @@ }, { id: 74, - name: "TypeScript (3.7.4)", + name: "TypeScript (5.0.2)", is_archived: false, source_file: "script.ts", compile_cmd: "/usr/bin/tsc %s script.ts", - run_cmd: "/usr/local/node-12.14.0/bin/node script.js" + run_cmd: "node script.js" }, { id: 75,