diff --git a/Dockerfile b/Dockerfile index 59fe5926..d7bb074b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,6 +35,13 @@ 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 + +RUN chmod -R 777 /api + ENTRYPOINT ["/api/docker-entrypoint.sh"] CMD ["/api/scripts/server"] 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/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, diff --git a/docker-compose.yml b/docker-compose.yml index c96d2342..7a04c2e1 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 volumes: - ./judge0.conf:/judge0.conf:ro ports: @@ -19,7 +21,9 @@ services: restart: always worker: - image: judge0/judge0:latest + build: + context: . + dockerfile: Dockerfile command: ["./scripts/workers"] volumes: - ./judge0.conf:/judge0.conf:ro