diff --git a/Dockerfile b/Dockerfile new file mode 120000 index 0000000000000000000000000000000000000000..e33724c1251fdf413402dd9ebe1598ea4218b6f0 --- /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 0000000000000000000000000000000000000000..96c8589e47888251f7383dae83e66a23c3f289a5 --- /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 0000000000000000000000000000000000000000..8d483e5b82b2b51047f8b97c9178f6043b1a1a34 --- /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 0000000000000000000000000000000000000000..059bcd780feef9d29ea8d7cbb13e6ab8f42c345c --- /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