From 42513585a7358796063fafa493773dc2df5606b4 Mon Sep 17 00:00:00 2001 From: nosamad Date: Wed, 3 Apr 2019 00:35:49 +0200 Subject: [PATCH] adds arm32v7 debian based builder image --- Makefile | 5 ++ build/arm32v7-debian-builder.dockerfile | 104 ++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 build/arm32v7-debian-builder.dockerfile diff --git a/Makefile b/Makefile index 1f319af..b5ec772 100644 --- a/Makefile +++ b/Makefile @@ -94,6 +94,11 @@ $(MARCH_ARM32V7)MARCHS += arm32v7 $(MARCH_ARM32V7)$(BUILDTARGET)TARGETS += arm32v7-ubuntu-builder $(OUT)/arm32v7-ubuntu-builder/rules.mk: TARGET := arm32v7-ubuntu-builder +MARCH_ARM32V7 := $(filter-out arm32v7,$(MARCH)) +$(MARCH_ARM32V7)MARCHS += arm32v7 +$(MARCH_ARM32V7)$(BUILDTARGET)TARGETS += arm32v7-debian-builder +$(OUT)/arm32v7-debian-builder/rules.mk: TARGET := arm32v7-debian-builder + $(MARCH_AMD64)MEMCHECK_TARGETS += $(addprefix memcheck-,$(TARGETS)) ARM_TARGETS = $(filter arm%,$(TARGETS)) diff --git a/build/arm32v7-debian-builder.dockerfile b/build/arm32v7-debian-builder.dockerfile new file mode 100644 index 0000000..6d97ab2 --- /dev/null +++ b/build/arm32v7-debian-builder.dockerfile @@ -0,0 +1,104 @@ +ARG CODENAME=testing-slim + +FROM arm32v7/debian:$CODENAME as builder + +COPY docker/qemu-arm-static-* /usr/bin/qemu-arm-static + +RUN set -x \ + && apt update \ + && apt upgrade -y \ + && apt install --yes --no-install-recommends \ + build-essential \ + cmake \ + ninja-build \ + pkg-config \ + rsync \ + gdb \ + gdbserver + +COPY src /usr/local/src + +ARG PARALLELMFLAGS=-j2 + +ARG DUMB_INIT_VERISON=1.2.2 + +RUN set -x \ + && builddeps="xxd" \ + && apt install --yes --no-install-recommends $builddeps \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ + && cp -R "/usr/local/src/dumb-init-$DUMB_INIT_VERISON" . \ + && cd dumb-init-$DUMB_INIT_VERISON \ + && make "$PARALLELMFLAGS" \ + && chmod +x dumb-init \ + && mv dumb-init /usr/local/bin/dumb-init \ + && dumb-init --version \ + && rm -rf "$builddir" \ + && apt purge -y $builddeps + +ARG GTEST_VERSION=1.8.1 + +RUN set -x \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ + && cmake "/usr/local/src/googletest-release-$GTEST_VERSION" \ + && make "$PARALLELMFLAGS" install \ + && rm -rf "$builddir" + +ARG FUSE_VERSION=3.1.1 + +RUN set -x \ + && builddeps="libtool automake gettext" \ + && apt install --yes --no-install-recommends $builddeps \ + && cd "/usr/local/src/libfuse-fuse-$FUSE_VERSION" \ + && ./makeconf.sh \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ + && "/usr/local/src/libfuse-fuse-$FUSE_VERSION/configure" \ + && make "$PARALLELMFLAGS" install \ + && rm -rf "$builddir" \ + && apt purge -y $builddeps + +ARG WEBSOCKETS_VERSION=3.1.0 + +RUN set -x \ + && apt install --yes --no-install-recommends \ + ca-certificates \ + openssl \ + libssl-dev \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ + && cmake "/usr/local/src/libwebsockets-$WEBSOCKETS_VERSION" \ + && make "$PARALLELMFLAGS" install \ + && rm -rf "$builddir" + +ARG JANSSON_VERSION=2.12 + +RUN set -x \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ + && cmake -DJANSSON_BUILD_DOCS=OFF "/usr/local/src/jansson-$JANSSON_VERSION" \ + && make "$PARALLELMFLAGS" install \ + && rm -rf "$builddir" + +ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" + +ARG USERID=1000 + +ARG PROJECT_ROOT=/workspace/src +ARG OUT=/workspace/out + +RUN set -x \ + && useradd -u "$USERID" -ms /bin/bash user \ + && mkdir -p "$PROJECT_ROOT" "$OUT" \ + && chown user:user "$PROJECT_ROOT" "$OUT" + +WORKDIR "$OUT" + +ENTRYPOINT ["dumb-init", "--"] +