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