Skip to content

Commit

Permalink
Add rest of Dockerfiles from Submitty/DockerImages (#22)
Browse files Browse the repository at this point in the history
  • Loading branch information
cjreed121 authored Jun 14, 2024
1 parent 9115cd3 commit de96fa2
Show file tree
Hide file tree
Showing 13 changed files with 2,095 additions and 0 deletions.
88 changes: 88 additions & 0 deletions dockerfiles_to_do/csci1200/default/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@

FROM debian:stable-slim

RUN apt-get update \
&& apt-get -y --no-install-recommends install \
grep \
libseccomp-dev \
libseccomp2 \
procps \
&& rm -rf /var/lib/apt/lists/*

RUN echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list \
&& apt-get update \
&& apt-get -y --no-install-recommends install \
clang-6.0 \
&& apt-get -y install cmake\
&& apt-get -y install make\
&& rm -rf /var/lib/apt/lists/* \
&& ln -sf /usr/bin/clang-6.0 /usr/bin/clang \
&& ln -sf /usr/bin/clang++-6.0 /usr/bin/clang++
RUN apt-get update \
&& apt-get install -y --no-install-recommends g++ \
&& rm -rf /var/lib/apt/lists/*


ENV DRMEMORY_TAG release_2.6.0
ENV DRMEMORY_VERSION 2.6.0
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty

RUN apt-get update \
&& apt-get install -y --no-install-recommends wget ca-certificates rsync \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/drmemory \
&& cd /tmp \
&& wget https://github.com/DynamoRIO/drmemory/releases/download/${DRMEMORY_TAG}/DrMemory-Linux-${DRMEMORY_VERSION}.tar.gz \
&& tar -xpzf DrMemory-Linux-${DRMEMORY_VERSION}.tar.gz \
&& rsync --delete -a /tmp/DrMemory-Linux-${DRMEMORY_VERSION}/ ${SUBMITTY_INSTALL_DIR}/drmemory \
&& rm -rf /tmp/DrMemory* \
&& chown -R root ${SUBMITTY_INSTALL_DIR}/drmemory \
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/drmemory \
&& apt-get purge -y --auto-remove wget \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update \
&& apt-get install -y valgrind \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update \
&& apt-get install -y imagemagick \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update \
&& apt-get install -y wkhtmltopdf \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update \
&& apt-get install -y xvfb \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update \
&& apt-get install -y time \
&& rm -rf /var/lib/apt/lists/*

ENV AnalysisTools_Version v.18.06.00
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty

RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools \
&& wget -nv "https://github.com/Submitty/AnalysisTools/releases/download/${AnalysisTools_Version}/count" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools/count \
&& wget -nv "https://github.com/Submitty/AnalysisTools/releases/download/${AnalysisTools_Version}/plagiarism" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools/plagiarism \
&& wget -nv "https://github.com/Submitty/AnalysisTools/releases/download/${AnalysisTools_Version}/diagnostics" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools/diagnostics \
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools \
&& apt-get purge -y --auto-remove wget \
&& rm -rf /var/lib/apt/lists/*


ENV AnalysisToolsTS_Version v23.06.01
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty

RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS/build \
&& wget -nv "https://github.com/Submitty/AnalysisToolsTS/releases/download/${AnalysisToolsTS_Version}/submitty_count_ts" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS/build/submitty_count_ts \
&& wget -nv "https://github.com/Submitty/AnalysisToolsTS/releases/download/${AnalysisToolsTS_Version}/submitty_diagnostics_ts" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS/build/submitty_diagnostics_ts \
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS \
&& apt-get purge -y --auto-remove wget \
&& rm -rf /var/lib/apt/lists/*
CMD ["/bin/bash"]
22 changes: 22 additions & 0 deletions dockerfiles_to_do/csci2500/gdb/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FROM debian:stable-slim

RUN apt-get update \
&& apt-get -y --no-install-recommends install \
grep \
libseccomp-dev \
libseccomp2 \
procps \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update \
&& apt-get install -y --no-install-recommends g++ \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update \
&& apt-get install -y valgrind \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update \
&& apt-get install -y --no-install-recommends gdb \
&& rm -rf /var/lib/apt/lists/*

CMD ["/bin/bash"]
14 changes: 14 additions & 0 deletions dockerfiles_to_do/csci2500/spim/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM debian:stable-slim

RUN apt-get update \
&& apt-get -y --no-install-recommends install \
grep \
libseccomp-dev \
libseccomp2 \
procps \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update \
&& apt-get install -y spim \
&& rm -rf /var/lib/apt/lists/*

CMD ["/bin/bash"]
94 changes: 94 additions & 0 deletions dockerfiles_to_do/csci2600/java_tools/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
FROM ubuntu:18.04

# Install "software-properties-common" (for the "add-apt-repository")
RUN apt-get update && apt-get install -y \
software-properties-common
# Add the "JAVA" ppa
RUN add-apt-repository -y \
ppa:openjdk-r/ppa

# Install OpenJDK-8
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get install -y ant && \
apt-get clean;

# Fix certificate issues
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-installer

# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME

# Default to UTF-8 file.encoding
ENV LANG C.UTF-8

ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
ENV JUNIT_VERSION 4.12
ENV HAMCREST_VERSION 1.3
ENV JACOCO_VERSION 0.8.0


# Create the necessary directories
RUN mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco

# Get JUnit
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& rm -rf /var/lib/apt/lists/* \
&& echo 0 \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
&& wget https://repo1.maven.org/maven2/junit/junit/${JUNIT_VERSION}/junit-${JUNIT_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
&& cd / \
&& apt-get purge -y --auto-remove wget

# Get Hamcrest
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& rm -rf /var/lib/apt/lists/* \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
&& wget https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/${HAMCREST_VERSION}/hamcrest-core-${HAMCREST_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
&& cd / \
&& apt-get purge -y --auto-remove wget

# Get Jacoco
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget unzip \
&& rm -rf /var/lib/apt/lists/* \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco \
&& wget https://github.com/jacoco/jacoco/releases/download/v${JACOCO_VERSION}/jacoco-${JACOCO_VERSION}.zip -o /dev/null > /dev/null 2>&1 \
&& mkdir jacoco-${JACOCO_VERSION} \
&& unzip jacoco-${JACOCO_VERSION}.zip -d jacoco-${JACOCO_VERSION} > /dev/null \
&& mv jacoco-${JACOCO_VERSION}/lib/jacococli.jar jacococli.jar \
&& mv jacoco-${JACOCO_VERSION}/lib/jacocoagent.jar jacocoagent.jar \
&& rm -rf jacoco-${JACOCO_VERSION} \
&& rm -f jacoco-${JACOCO_VERSION}.zip \
&& chmod o+r . *.jar \
&& cd / \
&& apt-get purge -y --auto-remove wget unzip

# Retrieve the Submitty Testrunner.
# TODO: replace this with something more sustainable than a wget from master
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& rm -rf /var/lib/apt/lists/* \
&& wget https://raw.githubusercontent.com/Submitty/Submitty/master/junit_test_runner/TestRunner.java --output-document=${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/TestRunner.java \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/ \
&& /usr/bin/javac -cp ./junit-4.12.jar TestRunner.java \
&& cd / \
&& apt-get purge -y --auto-remove wget


# Fix Permissions
RUN chown -R root:${COURSE_BUILDERS_GROUP} ${SUBMITTY_INSTALL_DIR}/java_tools \
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/java_tools


CMD ["/bin/bash"]
132 changes: 132 additions & 0 deletions dockerfiles_to_do/csci2600/java_tools_dafny/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
FROM ubuntu:18.04

# Install "software-properties-common" (for the "add-apt-repository")
RUN apt-get update && apt-get install -y \
software-properties-common
# Add the "JAVA" ppa
RUN add-apt-repository -y \
ppa:openjdk-r/ppa

# Install OpenJDK-8
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get install -y ant && \
apt-get clean;

# Fix certificate issues
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-installer

# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
# see CA_CERTIFICATES_JAVA_VERSION notes above
RUN /var/lib/dpkg/info/ca-certificates-java.postinst configure
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
ENV JUNIT_VERSION 4.12
ENV HAMCREST_VERSION 1.3
ENV JACOCO_VERSION 0.8.0


# Create the necessary directories
RUN mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco

# Get JUnit
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& rm -rf /var/lib/apt/lists/* \
&& echo 0 \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
&& wget https://repo1.maven.org/maven2/junit/junit/${JUNIT_VERSION}/junit-${JUNIT_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
&& cd / \
&& apt-get purge -y --auto-remove wget

# Get Hamcrest
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& rm -rf /var/lib/apt/lists/* \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
&& wget https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/${HAMCREST_VERSION}/hamcrest-core-${HAMCREST_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
&& cd / \
&& apt-get purge -y --auto-remove wget

# Get Jacoco
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget unzip \
&& rm -rf /var/lib/apt/lists/* \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco \
&& wget https://github.com/jacoco/jacoco/releases/download/v${JACOCO_VERSION}/jacoco-${JACOCO_VERSION}.zip -o /dev/null > /dev/null 2>&1 \
&& mkdir jacoco-${JACOCO_VERSION} \
&& unzip jacoco-${JACOCO_VERSION}.zip -d jacoco-${JACOCO_VERSION} > /dev/null \
&& mv jacoco-${JACOCO_VERSION}/lib/jacococli.jar jacococli.jar \
&& mv jacoco-${JACOCO_VERSION}/lib/jacocoagent.jar jacocoagent.jar \
&& rm -rf jacoco-${JACOCO_VERSION} \
&& rm -f jacoco-${JACOCO_VERSION}.zip \
&& chmod o+r . *.jar \
&& cd / \
&& apt-get purge -y --auto-remove wget unzip

# Retrieve the Submitty Testrunner.
# TODO: replace this with something more sustainable than a wget from master
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget \
&& rm -rf /var/lib/apt/lists/* \
&& wget https://raw.githubusercontent.com/Submitty/Submitty/master/junit_test_runner/TestRunner.java --output-document=${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/TestRunner.java \
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/ \
&& /usr/bin/javac -cp ./junit-4.12.jar TestRunner.java \
&& cd / \
&& apt-get purge -y --auto-remove wget


# Fix Permissions
RUN chown -R root:${COURSE_BUILDERS_GROUP} ${SUBMITTY_INSTALL_DIR}/java_tools \
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/java_tools


ENV MONO_VERSION 6.8.0.96

RUN apt-get update && apt-get install -y --no-install-recommends \
gnupg \
ca-certificates \
wget \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install -y --no-install-recommends \
apt-transport-https \
dirmngr \
&& rm -rf /var/lib/apt/lists/* \
&& echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic/snapshots/6.12.0 main" | tee /etc/apt/sources.list.d/mono-official.list \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \
&& apt-get update && apt-get install -y --no-install-recommends \
mono-devel \
msbuild \
&& rm -rf /var/lib/apt/lists/* /tmp/*

ENV DAFNY_VER v2.3.0
ENV DAFNY_FILE dafny-2.3.0.10506-x64-debian-8.11.zip
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty

RUN apt-get update \
&& apt-get install -y --no-install-recommends wget unzip \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/Dafny \
&& chown root:${COURSE_BUILDERS_GROUP} ${SUBMITTY_INSTALL_DIR}/Dafny \
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/Dafny \
&& cd ${SUBMITTY_INSTALL_DIR}/Dafny \
&& wget https://github.com/Microsoft/dafny/releases/download/${DAFNY_VER}/${DAFNY_FILE} \
&& unzip $DAFNY_FILE \
&& rm -f $DAFNY_FILE \
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/Dafny \
&& cd / \
&& apt-get purge -y --auto-remove wget unzip

# dafny requires libgomp1
RUN apt-get update \
&& apt-get install -y libgomp1 \
&& rm -rf /var/lib/apt/lists/* CMD ["/bin/bash"]
Loading

0 comments on commit de96fa2

Please sign in to comment.