diff options
author | Andrew Moss <1043609+amoss@users.noreply.github.com> | 2020-02-21 15:06:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-21 15:06:31 +0100 |
commit | 81e39357aff382f90332567137b77bb293a2ce93 (patch) | |
tree | ccff2d06555679a865eba62e0616f35cf5abdd4f /build_external/bin | |
parent | 19ef3f93792d382992afbdce74743d868eaa3074 (diff) |
Added support for cross-host docker-compose builds (#7754)
The new file in the build_external directory allow cross-host builds (i.e. building Netdata for a Debian system on a Fedora host). The build and execution is wrapped inside docker containers with an appropriate user-land, based on the package builder base images. These containers can be orchestrated into more complex testing environments (e.g. master-slave streaming setups or the ACLK). Rebuilding the netdata agent inside the containers is an incremental build-step (to improve dev time) rather than a clean install.
Diffstat (limited to 'build_external/bin')
-rwxr-xr-x | build_external/bin/clean-install.sh | 49 | ||||
-rwxr-xr-x | build_external/bin/make-install.sh | 8 |
2 files changed, 57 insertions, 0 deletions
diff --git a/build_external/bin/clean-install.sh b/build_external/bin/clean-install.sh new file mode 100755 index 0000000000..032cb09ca4 --- /dev/null +++ b/build_external/bin/clean-install.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +DISTRO="$1" +VERSION="$2" +BuildBase="$(cd "$(dirname "$0")" && cd .. && pwd)" + +# This is temporary - not all of the package-builder images from the helper-images repo +# are available on Docker Hub. When everything falls under the "happy case" below this +# can be deleted in a future iteration. This is written in a weird way for portability, +# can't rely on bash 4.0+ to allow case fall-through with ;& + +if cat <<HAPPY_CASE | grep "$DISTRO-$VERSION" + opensuse-15.1 + fedora-29 + debian-9 + debian-8 + fedora-30 + opensuse-15.0 + ubuntu-19.04 + centos-7 + fedora-31 + ubuntu-16.04 + ubuntu-18.04 + ubuntu-19.10 + debian-10 + centos-8 + ubuntu-1804 + ubuntu-1904 + ubuntu-1910 + debian-stretch + debian-jessie + debian-buster +HAPPY_CASE +then + docker build -f "$BuildBase/clean-install.Dockerfile" -t "${DISTRO}_${VERSION}_dev" "$BuildBase/.." \ + --build-arg "DISTRO=$DISTRO" --build-arg "VERSION=$VERSION" --build-arg ACLK=yes \ + --build-arg EXTRA_CFLAGS="-DACLK_SSL_ALLOW_SELF_SIGNED" +else + case "$DISTRO-$VERSION" in + arch-current) + docker build -f "$BuildBase/clean-install-arch.Dockerfile" -t "${DISTRO}_${VERSION}_dev" "$BuildBase/.." \ + --build-arg "DISTRO=$DISTRO" --build-arg "VERSION=$VERSION" --build-arg ACLK=yes \ + --build-arg EXTRA_CFLAGS="-DACLK_SSL_ALLOW_SELF_SIGNED" + ;; + *) + echo "Unknown $DISTRO-$VERSION" + ;; + esac +fi diff --git a/build_external/bin/make-install.sh b/build_external/bin/make-install.sh new file mode 100755 index 0000000000..fe4f7c9e83 --- /dev/null +++ b/build_external/bin/make-install.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +DISTRO="$1" +VERSION="$2" +BuildBase="$(cd "$(dirname "$0")" && cd .. && pwd)" + +docker build -f "$BuildBase/make-install.Dockerfile" -t "${DISTRO}_${VERSION}_dev:latest" "$BuildBase/.." \ + --build-arg "DISTRO=${DISTRO}" --build-arg "VERSION=${VERSION}" |