summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjp2020-06-03 13:12:16 +0100
committerjp2020-06-03 13:12:16 +0100
commit6812cd743d10672223a94dadea09018af2ea7c97 (patch)
treeb816c2425b9dfd2d9c039b8f7d6c9782a7f7bcc3
parentec500f1ce28656fca7d7c1ab8304d5d5a7dffc5b (diff)
add docker makefile target
-rw-r--r--.dockerignore1
-rw-r--r--Dockerfile22
-rw-r--r--Makefile6
-rw-r--r--docker_entry_point.sh2
4 files changed, 30 insertions, 1 deletions
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 00000000..f3b64113
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+**/.git
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..4db0ce5f
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,22 @@
+FROM ubuntu
+RUN apt-get update
+RUN apt-get upgrade -y
+RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y opam build-essential libgmp-dev z3 pkg-config zlib1g-dev
+RUN mkdir /etc/sudoers.d/ && \
+ echo 'opam ALL=(ALL:ALL) NOPASSWD:ALL' > /etc/sudoers.d/opam && \
+ chmod 440 /etc/sudoers.d/opam && \
+ chown root:root /etc/sudoers.d/opam && \
+ adduser --disabled-password --gecos '' opam && \
+ passwd -l opam && \
+ chown -R opam:opam /home/opam
+USER opam
+ENV HOME /home/opam
+WORKDIR /home/opam
+RUN opam init --disable-sandboxing
+RUN eval `opam env` && \
+ opam repository add rems https://github.com/rems-project/opam-repository.git && \
+ opam install -y sail
+COPY --chown=opam docker_entry_point.sh /home/opam/
+RUN chmod +x docker_entry_point.sh
+WORKDIR /data
+ENTRYPOINT ["/home/opam/docker_entry_point.sh"]
diff --git a/Makefile b/Makefile
index ae4b883a..895dc3be 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-.PHONY: all sail language clean archs isabelle-lib apply_header
+.PHONY: all sail language clean archs isabelle-lib apply_header docker
INSTALL_DIR ?= .
@@ -86,3 +86,7 @@ clean:
$(MAKE) -C "$$subdir" clean;\
done
rm -f sail
+
+docker:
+ docker build --tag sail:0.1 .
+ @echo 'for example: docker run --volume `PWD`:/data/ sail:0.1 --help'
diff --git a/docker_entry_point.sh b/docker_entry_point.sh
new file mode 100644
index 00000000..d66b202a
--- /dev/null
+++ b/docker_entry_point.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+eval `opam env` && sail $*