From d942bc7322f613854ba2fec9dea60569642efc80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herman=20Zvonimir=20Do=C5=A1ilovi=C4=87?= Date: Sun, 29 May 2022 22:50:42 +0200 Subject: [PATCH] WIP --- Dockerfile.server | 32 ++++++++++++++++++++++++++++++++ Dockerfile => Dockerfile.worker | 19 ++++++++++--------- docker-compose.dev.yml | 1 + docker-compose.yml | 8 +++----- docker-entrypoint.sh | 6 ++++-- 5 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 Dockerfile.server rename Dockerfile => Dockerfile.worker (77%) diff --git a/Dockerfile.server b/Dockerfile.server new file mode 100644 index 00000000..c9ea7034 --- /dev/null +++ b/Dockerfile.server @@ -0,0 +1,32 @@ +FROM ruby:2.7.0 + +ENV JUDGE0_HOMEPAGE "https://judge0.com" +LABEL homepage=$JUDGE0_HOMEPAGE + +ENV JUDGE0_SOURCE_CODE "https://github.com/judge0/judge0" +LABEL source_code=$JUDGE0_SOURCE_CODE + +ENV JUDGE0_MAINTAINER "Herman Zvonimir Došilović " +LABEL maintainer=$JUDGE0_MAINTAINER + +RUN apt update && \ + apt install -y --no-install-recommends \ + libpq-dev && \ + rm -rf /var/lib/apt/lists/* && \ + echo "gem: --no-document" > /root/.gemrc && \ + gem install bundler:2.3.14 + +EXPOSE 2358 + +WORKDIR /api + +COPY Gemfile* ./ +RUN RAILS_ENV=production bundle + +COPY . . + +ENTRYPOINT ["/api/docker-entrypoint.sh"] +CMD ["/api/scripts/server"] + +ENV JUDGE0_VERSION "1.13.0" +LABEL version=$JUDGE0_VERSION diff --git a/Dockerfile b/Dockerfile.worker similarity index 77% rename from Dockerfile rename to Dockerfile.worker index 59fe5926..05649018 100644 --- a/Dockerfile +++ b/Dockerfile.worker @@ -12,18 +12,16 @@ LABEL maintainer=$JUDGE0_MAINTAINER ENV PATH "/usr/local/ruby-2.7.0/bin:/opt/.gem/bin:$PATH" ENV GEM_HOME "/opt/.gem/" -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ +RUN apt update && \ + apt install -y --no-install-recommends \ cron \ libpq-dev \ sudo && \ rm -rf /var/lib/apt/lists/* && \ echo "gem: --no-document" > /root/.gemrc && \ - gem install bundler:2.1.4 && \ - npm install -g --unsafe-perm aglio@2.3.0 + gem install bundler:2.3.14 -ENV VIRTUAL_PORT 2358 -EXPOSE $VIRTUAL_PORT +EXPOSE 2358 WORKDIR /api @@ -36,7 +34,7 @@ RUN cat /etc/cron.d/* | crontab - COPY . . ENTRYPOINT ["/api/docker-entrypoint.sh"] -CMD ["/api/scripts/server"] +CMD ["/api/scripts/workers"] ENV JUDGE0_VERSION "1.13.0" LABEL version=$JUDGE0_VERSION @@ -47,10 +45,13 @@ FROM production AS development ARG DEV_USER=judge0 ARG DEV_USER_ID=1000 -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ +EXPOSE 3001 + +RUN apt update && \ + apt install -y --no-install-recommends \ tmux \ vim && \ + npm install -g --unsafe-perm aglio@2.3.0 && \ useradd -u $DEV_USER_ID -m -r $DEV_USER && \ echo "$DEV_USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 25915362..106cc8b7 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -5,6 +5,7 @@ services: build: context: . target: development + dockerfile: Dockerfile.worker volumes: - .:/api ports: diff --git a/docker-compose.yml b/docker-compose.yml index c96d2342..74ba840d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,18 +9,16 @@ x-logging: services: server: - image: judge0/judge0:latest + image: asdf volumes: - ./judge0.conf:/judge0.conf:ro ports: - "2358:2358" - privileged: true <<: *default-logging restart: always worker: image: judge0/judge0:latest - command: ["./scripts/workers"] volumes: - ./judge0.conf:/judge0.conf:ro privileged: true @@ -28,7 +26,7 @@ services: restart: always db: - image: postgres:13.0 + image: postgres:14.3 env_file: judge0.conf volumes: - postgres-data:/var/lib/postgresql/data/ @@ -36,7 +34,7 @@ services: restart: always redis: - image: redis:6.0 + image: redis:6.2.7 command: [ "bash", "-c", 'docker-entrypoint.sh --appendonly yes --requirepass "$$REDIS_PASSWORD"' diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 5bd80749..6d6594b5 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,3 +1,5 @@ #!/bin/bash -cron -exec "$@" \ No newline at end of file +if [[ "$(which cron)" != "" ]]; then + cron +fi +exec "$@" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy