-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
55 lines (44 loc) · 1.26 KB
/
Dockerfile
File metadata and controls
55 lines (44 loc) · 1.26 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
FROM ubuntu:noble
RUN apt-get update && \
apt-get install -y --no-install-recommends \
sudo \
python3-pip \
python3-jsonschema \
python3-ply \
python3-yaml \
emacs-nox \
build-essential \
git \
sbcl \
curl \
libgmp-dev \
&& rm -rf /var/lib/apt/lists/*
RUN useradd --create-home --shell /bin/bash fhirfly
USER fhirfly
WORKDIR /home/fhirfly
RUN mkdir -p fhirfly
RUN git clone https://github.com/SRI-CSL/PVS
ENV PVS_DIR=/home/fhirfly/PVS
ENV PATH=$PVS_DIR:$PATH
WORKDIR /home/fhirfly/PVS
# Pin a specific version of PVS
RUN git checkout d3f4323f8126b4177cb90acceae1abcd5b9e88c1
# Patch to fix pvs2c failing to compile with error about duplicate
# definitions of stringliteral_s and file_s in object files
COPY pvs2c.patch pvs2c.patch
RUN git apply pvs2c.patch
# Serial make required for base PVS, otherwise it trips up on
# some kind of Yices dependency
RUN ./configure && make
RUN pvs -batch -E "(pvs2c-prelude)" && cd lib/pvs2c/src && make -j8
WORKDIR /home/fhirfly/fhirfly
# Files to copy defined in .dockerignore
COPY main.py pvs_main.py run_tests.py README.md .
COPY jslt_parser ./jslt_parser
COPY jslt_pvs ./jslt_pvs
COPY examples ./examples
USER root
RUN chown -R fhirfly .
#USER fhirfly
ENV FHIRFLY_DOCKER=true
CMD ["bash"]