From a8059e120a19dbc10ba91ab1ee94368d24595247 Mon Sep 17 00:00:00 2001
From: Tomas Pecka <peckato1@fit.cvut.cz>
Date: Sun, 11 Nov 2018 16:33:05 +0100
Subject: [PATCH] Build: Docker for master and master-cli-only

---
 Dockerfile                         |  1 +
 extra/docker/docker-agui.sh        | 17 +++++++++
 extra/docker/master-cli/Dockerfile | 56 +++++++++++++++++++++++++++
 extra/docker/master/Dockerfile     | 61 ++++++++++++++++++++++++++++++
 4 files changed, 135 insertions(+)
 create mode 120000 Dockerfile
 create mode 100755 extra/docker/docker-agui.sh
 create mode 100644 extra/docker/master-cli/Dockerfile
 create mode 100644 extra/docker/master/Dockerfile

diff --git a/Dockerfile b/Dockerfile
new file mode 120000
index 0000000000..e33724c125
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1 @@
+extra/docker/master/Dockerfile
\ No newline at end of file
diff --git a/extra/docker/docker-agui.sh b/extra/docker/docker-agui.sh
new file mode 100755
index 0000000000..96c8589e47
--- /dev/null
+++ b/extra/docker/docker-agui.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+if [ $# -ne 1 ]; then
+	echo "./$0 CONTAINER"
+	exit 1
+fi
+
+docker run -it \
+  --user $(id -u) \
+  -e DISPLAY=$DISPLAY \
+  -e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \
+  --volume="/etc/passwd:/etc/passwd:ro" \
+  --volume="$XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR" \
+  -v /home/$USER/.local/:/home/$USER/.local/:ro \
+  -v /usr/share/X11/xkb:/usr/share/X11/xkb \
+  -v /tmp/.X11-unix:/tmp/.X11-unix \
+  $1 agui2
diff --git a/extra/docker/master-cli/Dockerfile b/extra/docker/master-cli/Dockerfile
new file mode 100644
index 0000000000..8d483e5b82
--- /dev/null
+++ b/extra/docker/master-cli/Dockerfile
@@ -0,0 +1,56 @@
+# -------------------------------------------------------------------------------------------------
+# build stage
+
+FROM alpine:3.8 AS builder
+ENV BASEDIR="/build"
+
+RUN apk add \
+	curl \
+	bash \
+	g++ \
+	make cmake \
+	python3 \
+	\
+	libexecinfo-dev \
+	libxml2-dev \
+	cppunit-dev \
+	tclap-dev \
+	readline-dev
+
+ADD     . $BASEDIR
+WORKDIR $BASEDIR
+RUN	CMake/generate.py -wm
+
+WORKDIR	$BASEDIR/release
+RUN	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr/local \
+		-DALIB_NOGUI=1 \
+		.. && \
+	make -j $(grep -c processor /proc/cpuinfo) && \
+	make test && \
+	make install
+
+
+# -------------------------------------------------------------------------------------------------
+# deploy stage
+FROM alpine:3.8
+
+LABEL maintainer="tomas.pecka@fit.cvut.cz"
+
+ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/app/lib"
+ENV PATH="${PATH}:/app/bin"
+
+RUN apk add --update \
+	bash \
+	\
+	libexecinfo \
+	libxml2 \
+	cppunit \
+	tclap \
+	readline
+
+COPY --from=builder /usr/local/bin /app/bin
+COPY --from=builder /usr/local/lib /app/lib
+
+CMD aql2
diff --git a/extra/docker/master/Dockerfile b/extra/docker/master/Dockerfile
new file mode 100644
index 0000000000..059bcd780f
--- /dev/null
+++ b/extra/docker/master/Dockerfile
@@ -0,0 +1,61 @@
+# -------------------------------------------------------------------------------------------------
+# build stage
+
+FROM alpine:3.8 AS builder
+ENV BASEDIR="/build"
+
+RUN apk add \
+	curl \
+	bash \
+	g++ \
+	make cmake \
+	python3 \
+	\
+	libexecinfo-dev \
+	libxml2-dev \
+	cppunit-dev \
+	tclap-dev \
+	readline-dev \
+	qt5-qtbase-dev \
+	graphviz-dev \
+	jsoncpp-dev
+
+ADD     . $BASEDIR
+WORKDIR $BASEDIR
+RUN	CMake/generate.py -wm
+
+WORKDIR	$BASEDIR/release
+RUN	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr/local \
+		.. && \
+	make -j $(grep -c processor /proc/cpuinfo) && \
+	make test && \
+	make install
+
+
+# -------------------------------------------------------------------------------------------------
+# deploy stage
+FROM alpine:3.8
+
+LABEL maintainer="tomas.pecka@fit.cvut.cz"
+
+ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/app/lib"
+ENV PATH="${PATH}:/app/bin"
+
+RUN apk add --update \
+	bash \
+	\
+	libexecinfo \
+	libxml2 \
+	cppunit \
+	tclap \
+	readline \
+	qt5-qtbase-x11 \
+	graphviz \
+	jsoncpp
+
+COPY --from=builder /usr/local/bin /app/bin
+COPY --from=builder /usr/local/lib /app/lib
+
+CMD aql2
-- 
GitLab