diff --git a/hack/make/.ensure-syscall-test b/hack/make/.ensure-syscall-test index 20fe2dc4c2..376fef1cf0 100644 --- a/hack/make/.ensure-syscall-test +++ b/hack/make/.ensure-syscall-test @@ -4,5 +4,20 @@ set -e # Build a C binary for cloning a userns for seccomp tests # and compile it for target daemon if [ "$DOCKER_ENGINE_GOOS" = "linux" ]; then - docker build ${DOCKER_BUILD_ARGS} -qt syscall-test contrib/syscall-test > /dev/null + if [ "$DOCKER_ENGINE_OSARCH" = "$DOCKER_CLIENT_OSARCH" ]; then + tmpdir=$(mktemp -d) + gcc -g -Wall -static contrib/syscall-test/userns.c -o "${tmpdir}/userns-test" + gcc -g -Wall -static contrib/syscall-test/ns.c -o "${tmpdir}/ns-test" + gcc -g -Wall -static contrib/syscall-test/acct.c -o "${tmpdir}/acct-test" + + dockerfile="${tmpdir}/Dockerfile" + cat <<-EOF > "$dockerfile" + FROM debian:jessie + COPY . /usr/bin/ + EOF + docker build --force-rm ${DOCKER_BUILD_ARGS} -qt syscall-test "${tmpdir}" > /dev/null + rm -rf "${tmpdir}" + else + docker build ${DOCKER_BUILD_ARGS} -qt syscall-test contrib/syscall-test > /dev/null + fi fi