From 6812cd743d10672223a94dadea09018af2ea7c97 Mon Sep 17 00:00:00 2001 From: jp Date: Wed, 3 Jun 2020 13:12:16 +0100 Subject: [PATCH] add docker makefile target --- .dockerignore | 1 + Dockerfile | 22 ++++++++++++++++++++++ Makefile | 6 +++++- docker_entry_point.sh | 2 ++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker_entry_point.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..f3b64113e --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +**/.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..4db0ce5f0 --- /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 ae4b883aa..895dc3be7 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 000000000..d66b202ae --- /dev/null +++ b/docker_entry_point.sh @@ -0,0 +1,2 @@ +#!/bin/sh +eval `opam env` && sail $*