From 6c6ba261a5b81510124beb9e498976a6f84aeaf2 Mon Sep 17 00:00:00 2001 From: Paul Druce Date: Sat, 15 Jun 2024 18:19:20 +0100 Subject: [PATCH] Adding some simple Dockerfiles --- .dockerignore | 6 ++++++ Dockerfile | 27 +++++++++++++++++++++++++++ Makefile | 5 +++++ docker/base/Dockerfile | 3 +++ docker/base/Makefile | 6 ++++++ docker/cmake/Dockerfile | 9 +++++++++ docker/cmake/Makefile | 6 ++++++ 7 files changed, 62 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 docker/base/Dockerfile create mode 100644 docker/base/Makefile create mode 100644 docker/cmake/Dockerfile create mode 100644 docker/cmake/Makefile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..62fcde4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +build/ +cmake-build/ +lib/ +venv/ +/Dockerfile/ +/Makefile/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8a4d98b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM RFL/docker/cmake AS builder + +RUN apt-get install -y \ + libarmadillo-dev \ + libgsl-dev \ + git \ + doxygen \ + graphviz \ + libhdf5-serial-dev + +COPY ./ /RFL/ + +WORKDIR /RFL + +RUN cmake -B ./build . \ + && cmake --build ./build --target all -j 4 + +RUN ( cd build && ctest -j 2 )\ + && cmake --install ./build + +FROM RFL/docker/cmake + +COPY --from=builder /RFL/lib/new_RFL/include /usr/include/RFL/ +COPY --from=builder /RFL/lib/new_RFL/bin/ /usr/lib/RFL + +COPY --from=builder /RFL/lib/RFL/include /usr/include/old_RFL/ +COPY --from=builder /RFL/lib/RFL/bin/ /usr/lib/old_RFL diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fd807fa --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +TIMESTAMP=$(shell date +%Y%m%d) + +docker-build: + docker build . -t RFL/rfl:${TIMESTAMP} + docker tag RFL/rfl:${TIMESTAMP} RFL/rfl:latest \ No newline at end of file diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile new file mode 100644 index 0000000..51f83ed --- /dev/null +++ b/docker/base/Dockerfile @@ -0,0 +1,3 @@ +FROM ubuntu:24.04 + +RUN apt-get update && apt-get upgrade -y \ No newline at end of file diff --git a/docker/base/Makefile b/docker/base/Makefile new file mode 100644 index 0000000..139b1bd --- /dev/null +++ b/docker/base/Makefile @@ -0,0 +1,6 @@ + +TIMESTAMP=$(shell date +%Y%m%d) + +build: + docker build . -t RFL/docker/base:${TIMESTAMP} + docker tag RFL/docker/base:${TIMESTAMP} RFL/docker/base:latest \ No newline at end of file diff --git a/docker/cmake/Dockerfile b/docker/cmake/Dockerfile new file mode 100644 index 0000000..0da84c7 --- /dev/null +++ b/docker/cmake/Dockerfile @@ -0,0 +1,9 @@ +FROM RFL/docker/base + +RUN apt-get install -y \ + cmake \ + clang \ + make \ + gcc \ + g++ \ + libc-dev \ No newline at end of file diff --git a/docker/cmake/Makefile b/docker/cmake/Makefile new file mode 100644 index 0000000..77873bc --- /dev/null +++ b/docker/cmake/Makefile @@ -0,0 +1,6 @@ +TIMESTAMP=$(shell date +%Y%m%d) + + +build: + docker build . -t RFL/docker/cmake:${TIMESTAMP} + docker tag RFL/docker/cmake:${TIMESTAMP} RFL/docker/cmake:latest \ No newline at end of file