-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile
76 lines (55 loc) · 1.58 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
ENV PATH="/root/.dotnet:${PATH}"
ENV DOTNET_ROOT="/root/.dotnet"
WORKDIR /workspace
RUN apt update && apt install -y \
software-properties-common \
build-essential \
wget \
git \
unzip \
vim \
nodejs \
npm \
golang \
tmux \
htop
# Racket
RUN add-apt-repository -y ppa:plt/racket \
&& apt install -y racket
# Java
RUN wget -O- https://apt.corretto.aws/corretto.key | apt-key add -
RUN add-apt-repository -y 'deb https://apt.corretto.aws stable main' \
&& apt install -y java-1.8.0-amazon-corretto-jdk
RUN rm -rf /var/lib/apt/lists/*
# C#
RUN wget https://dot.net/v1/dotnet-install.sh \
&& chmod +x dotnet-install.sh \
&& ./dotnet-install.sh -c Current \
&& rm dotnet-install.sh
# Rosette
RUN raco pkg install -D --auto rosette
# Xsmith
RUN git clone https://gitlab.flux.utah.edu/xsmith/xsmith.git \
&& cd xsmith/xsmith \
&& raco pkg install -D --auto
RUN mkdir work-dir \
&& cd work-dir \
&& npm install bignumber.js
# Usually, running
# RUN raco pkg install -D --auto --name xdsmith ./xdsmith
# is a better idea, but we want to utilize
# Docker's caching, so let's install packages manually
# Dafny
RUN echo "1"
RUN git clone https://github.com/dafny-lang/dafny.git --recurse-submodules
COPY xdsmith/apply-patch.rkt /workspace/apply-patch.rkt
RUN racket apply-patch.rkt work-dir dafny
RUN cd dafny \
&& make exe \
&& make z3-ubuntu
COPY xdsmith /workspace/xdsmith
RUN find xdsmith -type d -name 'compiled' -prune -exec rm -rf {} \;
WORKDIR /workspace/work-dir
ENTRYPOINT ["racket"]