-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathContainerfile
More file actions
70 lines (54 loc) · 3.09 KB
/
Copy pathContainerfile
File metadata and controls
70 lines (54 loc) · 3.09 KB
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
#FROM ghcr.io/uq-pac/basil-tools-docker:flake-1bf2-619d3503 AS tools
#COPY ./nix-compute-closure.py .
#RUN echo 'export PATH=$(printf "%s/bin:" /nix/store/*-gnugrep-3.11 /nix/store/*-coreutils-9.7 /nix/store/*-findutils-4.10.0 /nix/store/*-python3-3.12.*)$PATH' > path.sh
#RUN source ./path.sh && set -x && \
# echo \
# /nix/store/*-ddisasm* \
# /nix/store/*-aarch64-unknown-linux-gnu-gcc-wrapper* \
# /nix/store/*bash-interactive* > inputs.txt && \
# python3 nix-compute-closure.py $(cat inputs.txt) > keep.txt
#USER 0
#RUN source ./path.sh && echo "export PATH=\$PATH$(printf ":%s/bin" $(cat inputs.txt))" > /tools-path.sh
#RUN source ./path.sh && for d in /nix/store/*; do if ! grep $d keep.txt; then chmod -R +rwx $d && rm -rf $d; fi; done
FROM debian:testing-backports AS bitwuzla
RUN apt-get update && apt-get install -y python3-mesonpy ninja-build meson libmpfr-dev libgmp-dev git gcc build-essential pkg-config cmake
COPY bitwuzla ./bitwuzla/
RUN bash -c 'cd bitwuzla && mkdir usr && ./configure.py --prefix=$(realpath usr) && cd build && meson compile && ninja install'
ENTRYPOINT ["bitwuzla/usr/bin/bitwuzla"]
FROM debian:testing-backports AS bitwuzla-rbin
RUN apt-get update && apt-get install -y wget unzip
RUN wget "https://github.com/bitwuzla/bitwuzla/releases/download/0.9.0/Bitwuzla-Linux-x86_64-static.zip"
RUN unzip "Bitwuzla-Linux-x86_64-static.zip"
ENTRYPOINT ["Bitwuzla-Linux-x86_64-static/bin/bitwuzla"]
FROM docker.io/ocaml/opam:debian-ocaml-5.3
#COPY --from=tools /nix /nix
#COPY --from=tools /tools-path.sh /
USER root
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y cvc5 z3 pkg-config libgmp-dev python3 zlib1g-dev bc openjdk-25-jre-headless
USER opam
RUN opam install dune && eval $(opam env)
RUN opam install parsexp sexplib0
#RUN git clone https://github.com/sneeuwballen/benchpress.git
##RUN cd benchpress && git checkout b0033cb1f900161f9e3212b47242899f59827895 && opam install .
#RUN cd benchpress && opam install .
COPY --chown=opam ./BASIL /home/opam/BASIL
RUN cd /home/opam/BASIL && ./mill assembly && mv out/assembly.dest/out.jar basil.jar && rm -rf out
COPY --chown=opam ./tv-sanity /home/opam/tv-sanity
RUN cd /home/opam/tv-sanity && eval $(opam env) && dune build --profile=release && dune install
#COPY --chown=opam ./tblproc /home/opam/tblproc
#RUN cd /home/opam/tblproc && eval $(opam env) && dune build --profile=release && dune install
USER root
RUN apt-get install -y python3-venv python3-pip
USER opam
COPY --chown=opam ./scripts/requirements.txt requirements.txt
RUN python3 -m venv env && . env/bin/activate && pip install -r requirements.txt
COPY plots /home/opam/plots
COPY --chown=opam ./scripts /home/opam/scripts
COPY --chown=opam ./basilbench /home/opam/basilbench
COPY --from=bitwuzla bitwuzla/usr/bin/bitwuzla /usr/bin/bitwuzla_patched
COPY --from=bitwuzla-rbin Bitwuzla-Linux-x86_64-static/bin/bitwuzla /usr/bin/bitwuzla
COPY results-logs results-logs
RUN mkdir /home/opam/out
RUN echo "eval $(opam env)" >> /home/opam/.bashrc
RUN echo "source $(realpath env/bin/activate)" >> /home/opam/.bashrc
#RUN echo "source /tools-path.sh" >> /home/opam/.bashrc