diff --git a/Makefile b/Makefile index 584c206..06a4e5e 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,11 @@ UBUNTU_CODENAME ?= bionic # Dependencies +DUMB_INIT_VERISON ?= 1.2.2 +DOCKER_BUILDARGS += DUMB_INIT_VERISON=$(DUMB_INIT_VERISON) +FETCH_TARGETS += $(OUT)/dumb-init-$(DUMB_INIT_VERISON).tar.gz +$(OUT)/dumb-init-$(DUMB_INIT_VERISON).tar.gz: URL := https://github.com/Yelp/dumb-init/archive/v${DUMB_INIT_VERISON}.tar.gz + GTEST_VERSION ?= 1.8.1 DOCKER_BUILDARGS += GTEST_VERSION=$(GTEST_VERSION) FETCH_TARGETS += $(OUT)/googletest-release-$(GTEST_VERSION).tar.gz @@ -108,7 +113,6 @@ DOCKER_RUNFLAGS += --security-opt seccomp=unconfined DOCKER_RUNFLAGS += --interactive DOCKER_RUNFLAGS += --rm -DOCKER_RUNFLAGS += --init DOCKER_RUNFLAGS += --user $(CONTAINER_USER):$(CONTAINER_GROUP) DOCKER_RUNFLAGS += --env SOURCE_DATE_EPOCH DOCKER_RUNFLAGS += --env BUILDTIME diff --git a/build/amd64-ubuntu-builder.dockerfile b/build/amd64-ubuntu-builder.dockerfile index cace9f3..317e5e2 100644 --- a/build/amd64-ubuntu-builder.dockerfile +++ b/build/amd64-ubuntu-builder.dockerfile @@ -13,61 +13,77 @@ RUN set -x \ rsync \ gdb \ gdbserver \ - valgrind \ - && rm -rf /var/lib/apt/lists/* + valgrind 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 \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && cmake "/usr/local/src/googletest-release-$GTEST_VERSION" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out + && rm -rf "$builddir" ARG FUSE_VERSION=3.1.1 RUN set -x \ - && apt update \ - && apt install --yes --no-install-recommends \ - libtool \ - automake \ - gettext \ + && builddeps="libtool automake gettext" \ + && apt install --yes --no-install-recommends $builddeps \ && cd "/usr/local/src/libfuse-fuse-$FUSE_VERSION" \ && ./makeconf.sh \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && "/usr/local/src/libfuse-fuse-$FUSE_VERSION/configure" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out \ - && rm -rf /var/lib/apt/lists/* + && rm -rf "$builddir" \ + && apt purge -y $builddeps ARG WEBSOCKETS_VERSION=3.1.0 RUN set -x \ - && apt update \ && apt install --yes --no-install-recommends \ + ca-certificates \ openssl \ libssl-dev \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && cmake "/usr/local/src/libwebsockets-$WEBSOCKETS_VERSION" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out \ - && rm -rf /var/lib/apt/lists/* + && rm -rf "$builddir" ARG JANSSON_VERSION=2.12 RUN set -x \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && cmake -DJANSSON_BUILD_DOCS=OFF "/usr/local/src/jansson-$JANSSON_VERSION" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out + && rm -rf "$builddir" ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" @@ -83,3 +99,5 @@ RUN set -x \ WORKDIR "$OUT" +ENTRYPOINT ["dumb-init", "--"] + diff --git a/build/arm32v7-ubuntu-builder.dockerfile b/build/arm32v7-ubuntu-builder.dockerfile index 8eb36e7..e0a1f31 100644 --- a/build/arm32v7-ubuntu-builder.dockerfile +++ b/build/arm32v7-ubuntu-builder.dockerfile @@ -14,61 +14,77 @@ RUN set -x \ pkg-config \ rsync \ gdb \ - gdbserver \ - && rm -rf /var/lib/apt/lists/* + 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 \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && cmake "/usr/local/src/googletest-release-$GTEST_VERSION" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out + && rm -rf "$builddir" ARG FUSE_VERSION=3.1.1 RUN set -x \ - && apt update \ - && apt install --yes --no-install-recommends \ - libtool \ - automake \ - gettext \ + && builddeps="libtool automake gettext" \ + && apt install --yes --no-install-recommends $builddeps \ && cd "/usr/local/src/libfuse-fuse-$FUSE_VERSION" \ && ./makeconf.sh \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && "/usr/local/src/libfuse-fuse-$FUSE_VERSION/configure" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out \ - && rm -rf /var/lib/apt/lists/* + && rm -rf "$builddir" \ + && apt purge -y $builddeps ARG WEBSOCKETS_VERSION=3.1.0 RUN set -x \ - && apt update \ && apt install --yes --no-install-recommends \ + ca-certificates \ openssl \ libssl-dev \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && cmake "/usr/local/src/libwebsockets-$WEBSOCKETS_VERSION" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out \ - && rm -rf /var/lib/apt/lists/* + && rm -rf "$builddir" ARG JANSSON_VERSION=2.12 RUN set -x \ - && mkdir -p /tmp/out \ - && cd /tmp/out \ + && builddir="/tmp/out" \ + && mkdir -p "$builddir" \ + && cd "$builddir" \ && cmake -DJANSSON_BUILD_DOCS=OFF "/usr/local/src/jansson-$JANSSON_VERSION" \ && make "$PARALLELMFLAGS" install \ - && rm -rf /tmp/out + && rm -rf "$builddir" ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" @@ -84,3 +100,5 @@ RUN set -x \ WORKDIR "$OUT" +ENTRYPOINT ["dumb-init", "--"] +