github.com/DaoCloud/dao@v0.0.0-20161212064103-c3dbfd13ee36/hack/make/.ensure-syscall-test (about)

     1  #!/bin/bash
     2  set -e
     3  
     4  # Build a C binary for cloning a userns for seccomp tests
     5  # and compile it for target daemon
     6  if [ "$DOCKER_ENGINE_GOOS" = "linux" ]; then
     7  	if [ "$DOCKER_ENGINE_OSARCH" = "$DOCKER_CLIENT_OSARCH" ]; then
     8  		tmpdir=$(mktemp -d)
     9  		gcc -g -Wall -static contrib/syscall-test/userns.c -o "${tmpdir}/userns-test"
    10  		gcc -g -Wall -static contrib/syscall-test/ns.c -o "${tmpdir}/ns-test"
    11  		gcc -g -Wall -static contrib/syscall-test/acct.c -o "${tmpdir}/acct-test"
    12  		gcc -g -Wall -static contrib/syscall-test/setuid.c -o "${tmpdir}/setuid-test"
    13  		gcc -g -Wall -static contrib/syscall-test/setgid.c -o "${tmpdir}/setgid-test"
    14  		gcc -g -Wall -static contrib/syscall-test/socket.c -o "${tmpdir}/socket-test"
    15  		gcc -g -Wall -static contrib/syscall-test/raw.c -o "${tmpdir}/raw-test"
    16  
    17  		dockerfile="${tmpdir}/Dockerfile"
    18  		cat <<-EOF > "$dockerfile"
    19  		FROM debian:jessie
    20  		COPY . /usr/bin/
    21  		EOF
    22  		docker build --force-rm ${DOCKER_BUILD_ARGS} -qt syscall-test "${tmpdir}" > /dev/null
    23  		rm -rf "${tmpdir}"
    24  	else
    25  		docker build ${DOCKER_BUILD_ARGS} -qt syscall-test contrib/syscall-test > /dev/null
    26  	fi
    27  fi