Skip to content

Commit de96fa2

Browse files
authored
Add rest of Dockerfiles from Submitty/DockerImages (#22)
1 parent 9115cd3 commit de96fa2

File tree

13 files changed

+2095
-0
lines changed

13 files changed

+2095
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
2+
FROM debian:stable-slim
3+
4+
RUN apt-get update \
5+
&& apt-get -y --no-install-recommends install \
6+
grep \
7+
libseccomp-dev \
8+
libseccomp2 \
9+
procps \
10+
&& rm -rf /var/lib/apt/lists/*
11+
12+
RUN echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list \
13+
&& apt-get update \
14+
&& apt-get -y --no-install-recommends install \
15+
clang-6.0 \
16+
&& apt-get -y install cmake\
17+
&& apt-get -y install make\
18+
&& rm -rf /var/lib/apt/lists/* \
19+
&& ln -sf /usr/bin/clang-6.0 /usr/bin/clang \
20+
&& ln -sf /usr/bin/clang++-6.0 /usr/bin/clang++
21+
RUN apt-get update \
22+
&& apt-get install -y --no-install-recommends g++ \
23+
&& rm -rf /var/lib/apt/lists/*
24+
25+
26+
ENV DRMEMORY_TAG release_2.6.0
27+
ENV DRMEMORY_VERSION 2.6.0
28+
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
29+
30+
RUN apt-get update \
31+
&& apt-get install -y --no-install-recommends wget ca-certificates rsync \
32+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/drmemory \
33+
&& cd /tmp \
34+
&& wget https://github.com/DynamoRIO/drmemory/releases/download/${DRMEMORY_TAG}/DrMemory-Linux-${DRMEMORY_VERSION}.tar.gz \
35+
&& tar -xpzf DrMemory-Linux-${DRMEMORY_VERSION}.tar.gz \
36+
&& rsync --delete -a /tmp/DrMemory-Linux-${DRMEMORY_VERSION}/ ${SUBMITTY_INSTALL_DIR}/drmemory \
37+
&& rm -rf /tmp/DrMemory* \
38+
&& chown -R root ${SUBMITTY_INSTALL_DIR}/drmemory \
39+
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/drmemory \
40+
&& apt-get purge -y --auto-remove wget \
41+
&& rm -rf /var/lib/apt/lists/*
42+
43+
RUN apt-get update \
44+
&& apt-get install -y valgrind \
45+
&& rm -rf /var/lib/apt/lists/*
46+
47+
RUN apt-get update \
48+
&& apt-get install -y imagemagick \
49+
&& rm -rf /var/lib/apt/lists/*
50+
51+
RUN apt-get update \
52+
&& apt-get install -y wkhtmltopdf \
53+
&& rm -rf /var/lib/apt/lists/*
54+
55+
RUN apt-get update \
56+
&& apt-get install -y xvfb \
57+
&& rm -rf /var/lib/apt/lists/*
58+
59+
RUN apt-get update \
60+
&& apt-get install -y time \
61+
&& rm -rf /var/lib/apt/lists/*
62+
63+
ENV AnalysisTools_Version v.18.06.00
64+
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
65+
66+
RUN apt-get update \
67+
&& apt-get install -y --no-install-recommends wget \
68+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools \
69+
&& wget -nv "https://github.com/Submitty/AnalysisTools/releases/download/${AnalysisTools_Version}/count" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools/count \
70+
&& wget -nv "https://github.com/Submitty/AnalysisTools/releases/download/${AnalysisTools_Version}/plagiarism" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools/plagiarism \
71+
&& wget -nv "https://github.com/Submitty/AnalysisTools/releases/download/${AnalysisTools_Version}/diagnostics" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools/diagnostics \
72+
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisTools \
73+
&& apt-get purge -y --auto-remove wget \
74+
&& rm -rf /var/lib/apt/lists/*
75+
76+
77+
ENV AnalysisToolsTS_Version v23.06.01
78+
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
79+
80+
RUN apt-get update \
81+
&& apt-get install -y --no-install-recommends wget \
82+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS/build \
83+
&& wget -nv "https://github.com/Submitty/AnalysisToolsTS/releases/download/${AnalysisToolsTS_Version}/submitty_count_ts" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS/build/submitty_count_ts \
84+
&& wget -nv "https://github.com/Submitty/AnalysisToolsTS/releases/download/${AnalysisToolsTS_Version}/submitty_diagnostics_ts" -O ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS/build/submitty_diagnostics_ts \
85+
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/SubmittyAnalysisToolsTS \
86+
&& apt-get purge -y --auto-remove wget \
87+
&& rm -rf /var/lib/apt/lists/*
88+
CMD ["/bin/bash"]
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FROM debian:stable-slim
2+
3+
RUN apt-get update \
4+
&& apt-get -y --no-install-recommends install \
5+
grep \
6+
libseccomp-dev \
7+
libseccomp2 \
8+
procps \
9+
&& rm -rf /var/lib/apt/lists/*
10+
RUN apt-get update \
11+
&& apt-get install -y --no-install-recommends g++ \
12+
&& rm -rf /var/lib/apt/lists/*
13+
14+
RUN apt-get update \
15+
&& apt-get install -y valgrind \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
RUN apt-get update \
19+
&& apt-get install -y --no-install-recommends gdb \
20+
&& rm -rf /var/lib/apt/lists/*
21+
22+
CMD ["/bin/bash"]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
FROM debian:stable-slim
2+
3+
RUN apt-get update \
4+
&& apt-get -y --no-install-recommends install \
5+
grep \
6+
libseccomp-dev \
7+
libseccomp2 \
8+
procps \
9+
&& rm -rf /var/lib/apt/lists/*
10+
RUN apt-get update \
11+
&& apt-get install -y spim \
12+
&& rm -rf /var/lib/apt/lists/*
13+
14+
CMD ["/bin/bash"]
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
FROM ubuntu:18.04
2+
3+
# Install "software-properties-common" (for the "add-apt-repository")
4+
RUN apt-get update && apt-get install -y \
5+
software-properties-common
6+
# Add the "JAVA" ppa
7+
RUN add-apt-repository -y \
8+
ppa:openjdk-r/ppa
9+
10+
# Install OpenJDK-8
11+
RUN apt-get update && \
12+
apt-get install -y openjdk-8-jdk && \
13+
apt-get install -y ant && \
14+
apt-get clean;
15+
16+
# Fix certificate issues
17+
RUN apt-get update && \
18+
apt-get install ca-certificates-java && \
19+
apt-get clean && \
20+
update-ca-certificates -f \
21+
rm -rf /var/lib/apt/lists/* && \
22+
rm -rf /var/cache/oracle-jdk8-installer
23+
24+
# Setup JAVA_HOME -- useful for docker commandline
25+
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
26+
RUN export JAVA_HOME
27+
28+
# Default to UTF-8 file.encoding
29+
ENV LANG C.UTF-8
30+
31+
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
32+
ENV JUNIT_VERSION 4.12
33+
ENV HAMCREST_VERSION 1.3
34+
ENV JACOCO_VERSION 0.8.0
35+
36+
37+
# Create the necessary directories
38+
RUN mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
39+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
40+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco
41+
42+
# Get JUnit
43+
RUN apt-get update \
44+
&& apt-get install -y --no-install-recommends wget \
45+
&& rm -rf /var/lib/apt/lists/* \
46+
&& echo 0 \
47+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
48+
&& wget https://repo1.maven.org/maven2/junit/junit/${JUNIT_VERSION}/junit-${JUNIT_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
49+
&& cd / \
50+
&& apt-get purge -y --auto-remove wget
51+
52+
# Get Hamcrest
53+
RUN apt-get update \
54+
&& apt-get install -y --no-install-recommends wget \
55+
&& rm -rf /var/lib/apt/lists/* \
56+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
57+
&& wget https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/${HAMCREST_VERSION}/hamcrest-core-${HAMCREST_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
58+
&& cd / \
59+
&& apt-get purge -y --auto-remove wget
60+
61+
# Get Jacoco
62+
RUN apt-get update \
63+
&& apt-get install -y --no-install-recommends wget unzip \
64+
&& rm -rf /var/lib/apt/lists/* \
65+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco \
66+
&& wget https://github.com/jacoco/jacoco/releases/download/v${JACOCO_VERSION}/jacoco-${JACOCO_VERSION}.zip -o /dev/null > /dev/null 2>&1 \
67+
&& mkdir jacoco-${JACOCO_VERSION} \
68+
&& unzip jacoco-${JACOCO_VERSION}.zip -d jacoco-${JACOCO_VERSION} > /dev/null \
69+
&& mv jacoco-${JACOCO_VERSION}/lib/jacococli.jar jacococli.jar \
70+
&& mv jacoco-${JACOCO_VERSION}/lib/jacocoagent.jar jacocoagent.jar \
71+
&& rm -rf jacoco-${JACOCO_VERSION} \
72+
&& rm -f jacoco-${JACOCO_VERSION}.zip \
73+
&& chmod o+r . *.jar \
74+
&& cd / \
75+
&& apt-get purge -y --auto-remove wget unzip
76+
77+
# Retrieve the Submitty Testrunner.
78+
# TODO: replace this with something more sustainable than a wget from master
79+
RUN apt-get update \
80+
&& apt-get install -y --no-install-recommends wget \
81+
&& rm -rf /var/lib/apt/lists/* \
82+
&& wget https://raw.githubusercontent.com/Submitty/Submitty/master/junit_test_runner/TestRunner.java --output-document=${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/TestRunner.java \
83+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/ \
84+
&& /usr/bin/javac -cp ./junit-4.12.jar TestRunner.java \
85+
&& cd / \
86+
&& apt-get purge -y --auto-remove wget
87+
88+
89+
# Fix Permissions
90+
RUN chown -R root:${COURSE_BUILDERS_GROUP} ${SUBMITTY_INSTALL_DIR}/java_tools \
91+
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/java_tools
92+
93+
94+
CMD ["/bin/bash"]
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
FROM ubuntu:18.04
2+
3+
# Install "software-properties-common" (for the "add-apt-repository")
4+
RUN apt-get update && apt-get install -y \
5+
software-properties-common
6+
# Add the "JAVA" ppa
7+
RUN add-apt-repository -y \
8+
ppa:openjdk-r/ppa
9+
10+
# Install OpenJDK-8
11+
RUN apt-get update && \
12+
apt-get install -y openjdk-8-jdk && \
13+
apt-get install -y ant && \
14+
apt-get clean;
15+
16+
# Fix certificate issues
17+
RUN apt-get update && \
18+
apt-get install ca-certificates-java && \
19+
apt-get clean && \
20+
update-ca-certificates -f \
21+
rm -rf /var/lib/apt/lists/* && \
22+
rm -rf /var/cache/oracle-jdk8-installer
23+
24+
# Setup JAVA_HOME -- useful for docker commandline
25+
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
26+
RUN export JAVA_HOME
27+
# see CA_CERTIFICATES_JAVA_VERSION notes above
28+
RUN /var/lib/dpkg/info/ca-certificates-java.postinst configure
29+
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
30+
ENV JUNIT_VERSION 4.12
31+
ENV HAMCREST_VERSION 1.3
32+
ENV JACOCO_VERSION 0.8.0
33+
34+
35+
# Create the necessary directories
36+
RUN mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
37+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
38+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco
39+
40+
# Get JUnit
41+
RUN apt-get update \
42+
&& apt-get install -y --no-install-recommends wget \
43+
&& rm -rf /var/lib/apt/lists/* \
44+
&& echo 0 \
45+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit \
46+
&& wget https://repo1.maven.org/maven2/junit/junit/${JUNIT_VERSION}/junit-${JUNIT_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
47+
&& cd / \
48+
&& apt-get purge -y --auto-remove wget
49+
50+
# Get Hamcrest
51+
RUN apt-get update \
52+
&& apt-get install -y --no-install-recommends wget \
53+
&& rm -rf /var/lib/apt/lists/* \
54+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/hamcrest \
55+
&& wget https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/${HAMCREST_VERSION}/hamcrest-core-${HAMCREST_VERSION}.jar -o /dev/null > /dev/null 2>&1 \
56+
&& cd / \
57+
&& apt-get purge -y --auto-remove wget
58+
59+
# Get Jacoco
60+
RUN apt-get update \
61+
&& apt-get install -y --no-install-recommends wget unzip \
62+
&& rm -rf /var/lib/apt/lists/* \
63+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/jacoco \
64+
&& wget https://github.com/jacoco/jacoco/releases/download/v${JACOCO_VERSION}/jacoco-${JACOCO_VERSION}.zip -o /dev/null > /dev/null 2>&1 \
65+
&& mkdir jacoco-${JACOCO_VERSION} \
66+
&& unzip jacoco-${JACOCO_VERSION}.zip -d jacoco-${JACOCO_VERSION} > /dev/null \
67+
&& mv jacoco-${JACOCO_VERSION}/lib/jacococli.jar jacococli.jar \
68+
&& mv jacoco-${JACOCO_VERSION}/lib/jacocoagent.jar jacocoagent.jar \
69+
&& rm -rf jacoco-${JACOCO_VERSION} \
70+
&& rm -f jacoco-${JACOCO_VERSION}.zip \
71+
&& chmod o+r . *.jar \
72+
&& cd / \
73+
&& apt-get purge -y --auto-remove wget unzip
74+
75+
# Retrieve the Submitty Testrunner.
76+
# TODO: replace this with something more sustainable than a wget from master
77+
RUN apt-get update \
78+
&& apt-get install -y --no-install-recommends wget \
79+
&& rm -rf /var/lib/apt/lists/* \
80+
&& wget https://raw.githubusercontent.com/Submitty/Submitty/master/junit_test_runner/TestRunner.java --output-document=${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/TestRunner.java \
81+
&& cd ${SUBMITTY_INSTALL_DIR}/java_tools/JUnit/ \
82+
&& /usr/bin/javac -cp ./junit-4.12.jar TestRunner.java \
83+
&& cd / \
84+
&& apt-get purge -y --auto-remove wget
85+
86+
87+
# Fix Permissions
88+
RUN chown -R root:${COURSE_BUILDERS_GROUP} ${SUBMITTY_INSTALL_DIR}/java_tools \
89+
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/java_tools
90+
91+
92+
ENV MONO_VERSION 6.8.0.96
93+
94+
RUN apt-get update && apt-get install -y --no-install-recommends \
95+
gnupg \
96+
ca-certificates \
97+
wget \
98+
&& rm -rf /var/lib/apt/lists/*
99+
100+
RUN apt-get update && apt-get install -y --no-install-recommends \
101+
apt-transport-https \
102+
dirmngr \
103+
&& rm -rf /var/lib/apt/lists/* \
104+
&& 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 \
105+
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \
106+
&& apt-get update && apt-get install -y --no-install-recommends \
107+
mono-devel \
108+
msbuild \
109+
&& rm -rf /var/lib/apt/lists/* /tmp/*
110+
111+
ENV DAFNY_VER v2.3.0
112+
ENV DAFNY_FILE dafny-2.3.0.10506-x64-debian-8.11.zip
113+
ENV SUBMITTY_INSTALL_DIR /usr/local/submitty
114+
115+
RUN apt-get update \
116+
&& apt-get install -y --no-install-recommends wget unzip \
117+
&& rm -rf /var/lib/apt/lists/* \
118+
&& mkdir -p ${SUBMITTY_INSTALL_DIR}/Dafny \
119+
&& chown root:${COURSE_BUILDERS_GROUP} ${SUBMITTY_INSTALL_DIR}/Dafny \
120+
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/Dafny \
121+
&& cd ${SUBMITTY_INSTALL_DIR}/Dafny \
122+
&& wget https://github.com/Microsoft/dafny/releases/download/${DAFNY_VER}/${DAFNY_FILE} \
123+
&& unzip $DAFNY_FILE \
124+
&& rm -f $DAFNY_FILE \
125+
&& chmod -R 755 ${SUBMITTY_INSTALL_DIR}/Dafny \
126+
&& cd / \
127+
&& apt-get purge -y --auto-remove wget unzip
128+
129+
# dafny requires libgomp1
130+
RUN apt-get update \
131+
&& apt-get install -y libgomp1 \
132+
&& rm -rf /var/lib/apt/lists/* CMD ["/bin/bash"]

0 commit comments

Comments
 (0)