| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:8ce1caf246e7c778bca84c516d02fd4e83766bb2c530a0fffa8a351b560a2728 in / |
| CMD ["/bin/bash"] |
| ARG DEBIAN_FRONTEND=noninteractive |
| ARG GO_VERSION |
| ARG NSJAIL_REF |
| SHELL [/bin/bash -o pipefail -c] |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends git cmake build-essential pkg-config libprotobuf-dev protobuf-compiler libnl-3-dev libnl-route-3-dev flex bison curl wget ca-certificates gnupg software-properties-common libssl-dev libffi-dev libxml2-dev libxslt-dev zlib1g-dev jq iptables && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c git clone https://github.com/google/nsjail.git /tmp/nsjail && cd /tmp/nsjail && git checkout "${NSJAIL_REF}" && make -j"$(nproc)" && cp /tmp/nsjail/nsjail /usr/local/bin/nsjail && chmod +x /usr/local/bin/nsjail && rm -rf /tmp/nsjail # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends python3 python3-pip python3-venv python3-dev python3-tk gcc g++ make pkg-config libcairo2-dev libpango1.0-dev libgdk-pixbuf-2.0-dev libjpeg-dev libpng-dev libtiff-dev libopenjp2-7-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev poppler-utils tesseract-ocr pandoc portaudio19-dev flac ffmpeg libpulse-dev libsdl2-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-ttf-dev antiword unrtf libreoffice-impress libreoffice-writer libreoffice-calc libreoffice-common && rm -rf /var/lib/apt/lists/* # buildkit |
| COPY docker/requirements/python-core.txt /tmp/python-core.txt # buildkit |
| COPY docker/requirements/python-analysis.txt /tmp/python-analysis.txt # buildkit |
| COPY docker/requirements/python-visualization.txt /tmp/python-visualization.txt # buildkit |
| COPY docker/requirements/python-documents.txt /tmp/python-documents.txt # buildkit |
| COPY docker/requirements/python-utilities.txt /tmp/python-utilities.txt # buildkit |
| COPY docker/requirements/python-new.txt /tmp/python-new.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c python3 -m pip install --break-system-packages --ignore-installed "pip<24.1" "setuptools<70" wheel "packaging<24" # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c pip install --break-system-packages -r /tmp/python-core.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c pip install --break-system-packages -r /tmp/python-analysis.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c pip install --break-system-packages -r /tmp/python-visualization.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c pip install --break-system-packages -r /tmp/python-documents.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c pip install --break-system-packages -r /tmp/python-utilities.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c pip install --break-system-packages -r /tmp/python-new.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c rm -f /tmp/python-*.txt # buildkit |
| ENV PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=/mnt/data |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y --no-install-recommends nodejs && rm -rf /var/lib/apt/lists/* # buildkit |
| COPY docker/requirements/nodejs.txt /tmp/nodejs.txt # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c grep -v '^#' /tmp/nodejs.txt | grep -v '^$' | xargs npm install -g && rm -f /tmp/nodejs.txt # buildkit |
| ENV NODE_ENV=sandbox NODE_PATH=/usr/local/lib/node_modules |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz" | tar -C /usr/local -xzf - # buildkit |
| ENV PATH=/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin GOPATH=/usr/local/gopath GO111MODULE=on GOPROXY=https://proxy.golang.org,direct GOSUMDB=sum.golang.org |
| COPY docker/requirements/go.mod /tmp/gosetup/go.mod # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c cd /tmp/gosetup && go mod download && cd / && rm -rf /tmp/gosetup # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends default-jdk && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c mkdir -p /opt/java/lib && cd /opt/java/lib && wget -q https://repo1.maven.org/maven2/org/apache/commons/commons-csv/1.10.0/commons-csv-1.10.0.jar && wget -q https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar && wget -q https://repo1.maven.org/maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar && wget -q https://repo1.maven.org/maven2/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar && wget -q https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.25.0/commons-compress-1.25.0.jar && wget -q https://repo1.maven.org/maven2/org/apache/commons/commons-text/1.11.0/commons-text-1.11.0.jar && wget -q https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.16.0/jackson-core-2.16.0.jar && wget -q https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.16.0/jackson-databind-2.16.0.jar && wget -q https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.16.0/jackson-annotations-2.16.0.jar && wget -q https://repo1.maven.org/maven2/org/apache/poi/poi/5.2.5/poi-5.2.5.jar && wget -q https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml/5.2.5/poi-ooxml-5.2.5.jar && wget -q https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml-lite/5.2.5/poi-ooxml-lite-5.2.5.jar && wget -q https://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/5.2.0/xmlbeans-5.2.0.jar && wget -q https://repo1.maven.org/maven2/org/apache/pdfbox/pdfbox/3.0.1/pdfbox-3.0.1.jar && wget -q https://repo1.maven.org/maven2/org/apache/pdfbox/fontbox/3.0.1/fontbox-3.0.1.jar && wget -q https://repo1.maven.org/maven2/com/google/guava/guava/33.0.0-jre/guava-33.0.0-jre.jar && wget -q https://repo1.maven.org/maven2/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar && wget -q https://repo1.maven.org/maven2/joda-time/joda-time/2.12.5/joda-time-2.12.5.jar # buildkit |
| ENV JAVA_OPTS=-Xmx512m -Xms128m CLASSPATH=/mnt/data:/opt/java/lib/* |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends cmake libgsl-dev libblas-dev liblapack-dev libzip-dev nlohmann-json3-dev libcsv-dev && rm -rf /var/lib/apt/lists/* # buildkit |
| ENV CC=gcc CXX=g++ |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends php php-cli php-common php-xml php-zip php-gd php-mbstring php-curl php-json libonig-dev unzip && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # buildkit |
| ENV COMPOSER_HOME=/opt/composer/global |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c mkdir -p /opt/composer/global && composer global require league/csv phpoffice/phpspreadsheet league/flysystem intervention/image ramsey/uuid nesbot/carbon markrogoyski/math-php guzzlehttp/guzzle symfony/yaml symfony/console --optimize-autoloader # buildkit |
| ENV PHP_INI_SCAN_DIR=/etc/php/8.3/cli/conf.d |
| ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --profile minimal && chmod -R a+r /usr/local/cargo /usr/local/rustup # buildkit |
| ENV PATH=/usr/local/cargo/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| COPY docker/requirements/rust-Cargo.toml /tmp/rust-cache/Cargo.toml # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c mkdir -p /tmp/rust-cache/src && echo 'fn main() {}' > /tmp/rust-cache/src/main.rs && cd /tmp/rust-cache && cargo build --release || true && rm -rf /tmp/rust-cache # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends gfortran libnetcdf-dev libhdf5-dev && rm -rf /var/lib/apt/lists/* # buildkit |
| ENV FORTRAN_COMPILER=gfortran FC=gfortran F77=gfortran F90=gfortran F95=gfortran |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends ldc binutils && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c mkdir -p /var/lib/code-interpreter/sandboxes && mkdir -p /mnt/data && mkdir -p /var/lib/code-interpreter/empty_proc # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive GO_VERSION=1.23.6 NSJAIL_REF=b7ff9f30188a7845d41366e1e3b3929f464ac443 /bin/bash -o pipefail -c groupadd -g 1001 codeuser && useradd -u 1001 -g codeuser -m codeuser && chown -R codeuser:codeuser /mnt/data # buildkit |
| ENV PATH=/usr/local/cargo/bin:/usr/local/go/bin:/opt/composer/global/vendor/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/cargo/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SANDBOX_BASE_DIR=/var/lib/code-interpreter/sandboxes |
| ARG DEBIAN_FRONTEND=noninteractive |
| SHELL [/bin/bash -o pipefail -c] |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends r-base r-base-dev libcurl4-openssl-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libtiff5-dev libjpeg-dev libcairo2-dev libxt-dev libx11-dev && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/bash -o pipefail -c R -e "options(repos = c(CRAN = 'https://cloud.r-project.org')); install.packages(c( 'dplyr', 'tidyr', 'data.table', 'magrittr', 'ggplot2', 'lattice', 'scales', 'Cairo', 'readr', 'readxl', 'writexl', 'jsonlite', 'xml2', 'MASS', 'survival', 'lubridate', 'stringr', 'glue' ))" # buildkit |
| ENV R_LIBS_USER=/usr/local/lib/R/site-library |
| ARG DEBIAN_FRONTEND=noninteractive |
| WORKDIR /app |
| COPY docker/repl_server.py /opt/repl_server.py # buildkit |
| COPY docker/ptc_server.py /opt/ptc_server.py # buildkit |
| COPY docker/ptc_bash_server.py /opt/ptc_bash_server.py # buildkit |
| COPY docker/entrypoint.sh /opt/entrypoint.sh # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/bash -o pipefail -c chmod +x /opt/repl_server.py /opt/ptc_server.py /opt/ptc_bash_server.py /opt/entrypoint.sh # buildkit |
| COPY requirements.txt /tmp/requirements.txt # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/bash -o pipefail -c grep -v '^docker==' /tmp/requirements.txt | grep -v '^requests-unixsocket==' | pip install --break-system-packages --ignore-installed -r /dev/stdin && rm -f /tmp/requirements.txt # buildkit |
| COPY src/ /app/src/ # buildkit |
| COPY dashboard/ /app/dashboard/ # buildkit |
| RUN |1 DEBIAN_FRONTEND=noninteractive /bin/bash -o pipefail -c find / -path /proc -prune -o -path /sys -prune -o \( -perm -4000 -o -perm -2000 \) -type f -exec chmod u-s,g-s {} + 2>/dev/null || true # buildkit |
| EXPOSE map[8000/tcp:{}] |
| CMD ["python3" "-m" "src.main"] |
| RUN /bin/bash -o pipefail -c ln -sf /usr/local/lib/python3.12 /usr/local/lib/python3 && ln -sf /usr/local/bin/python3.12 /usr/local/bin/python3 && mkdir -p /mnt/data /var/lib/code-interpreter/sandboxes /var/lib/code-interpreter/empty_proc /app/ssl /app/dashboard /var/lib/php/sessions /run/lock # buildkit |
| COPY repl_server.py /opt/repl_server.py # buildkit |