github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/hack/dockerfile/install-binaries.sh (about) 1 #!/bin/sh 2 set -e 3 set -x 4 5 . $(dirname "$0")/binaries-commits 6 7 RM_GOPATH=0 8 9 TMP_GOPATH=${TMP_GOPATH:-""} 10 11 if [ -z "$TMP_GOPATH" ]; then 12 export GOPATH="$(mktemp -d)" 13 RM_GOPATH=1 14 else 15 export GOPATH="$TMP_GOPATH" 16 fi 17 18 # Do not build with ambient capabilities support 19 RUNC_BUILDTAGS="${RUNC_BUILDTAGS:-"seccomp apparmor selinux"}" 20 21 install_runc() { 22 echo "Install runc version $RUNC_COMMIT" 23 #git clone https://github.com/docker/runc.git "$GOPATH/src/github.com/opencontainers/runc" 24 mkdir -p "$GOPATH/src/github.com/opencontainers" 25 mv /tmp/runc/ "$GOPATH/src/github.com/opencontainers" 26 cd "$GOPATH/src/github.com/opencontainers/runc" 27 #git checkout -q "$RUNC_COMMIT" 28 make BUILDTAGS="$RUNC_BUILDTAGS" $1 29 cp runc /usr/local/bin/docker-runc 30 } 31 32 install_containerd() { 33 echo "Install containerd version $CONTAINERD_COMMIT" 34 #git clone https://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" 35 mkdir -p "$GOPATH/src/github.com/docker" 36 mv /tmp/containerd/ "$GOPATH/src/github.com/docker" 37 cd "$GOPATH/src/github.com/docker/containerd" 38 #git checkout -q "$CONTAINERD_COMMIT" 39 make $1 40 cp bin/containerd /usr/local/bin/docker-containerd 41 cp bin/containerd-shim /usr/local/bin/docker-containerd-shim 42 cp bin/ctr /usr/local/bin/docker-containerd-ctr 43 } 44 45 install_proxy() { 46 echo "Install docker-proxy version $LIBNETWORK_COMMIT" 47 git clone https://github.com/docker/libnetwork.git "$GOPATH/src/github.com/docker/libnetwork" 48 #mkdir -p "$GOPATH/src/github.com/docker" 49 #mv /tmp/libnetwork/ "$GOPATH/src/github.com/docker" 50 cd "$GOPATH/src/github.com/docker/libnetwork" 51 git checkout -q "$LIBNETWORK_COMMIT" 52 go build -ldflags="$PROXY_LDFLAGS" -o /usr/local/bin/docker-proxy github.com/docker/libnetwork/cmd/proxy 53 } 54 55 for prog in "$@" 56 do 57 case $prog in 58 tomlv) 59 echo "Install tomlv version $TOMLV_COMMIT" 60 git clone https://github.com/BurntSushi/toml.git "$GOPATH/src/github.com/BurntSushi/toml" 61 #mkdir -p "$GOPATH/src/github.com/BurntSushi" 62 #mv /tmp/toml/ "$GOPATH/src/github.com/BurntSushi" 63 cd "$GOPATH/src/github.com/BurntSushi/toml" && git checkout -q "$TOMLV_COMMIT" 64 #cd "$GOPATH/src/github.com/BurntSushi/toml" 65 go build -v -o /usr/local/bin/tomlv github.com/BurntSushi/toml/cmd/tomlv 66 ;; 67 68 runc) 69 install_runc static 70 ;; 71 72 runc-dynamic) 73 install_runc 74 ;; 75 76 containerd) 77 install_containerd static 78 ;; 79 80 containerd-dynamic) 81 install_containerd 82 ;; 83 84 tini) 85 echo "Install tini version $TINI_COMMIT" 86 git clone https://github.com/krallin/tini.git "$GOPATH/tini" 87 #mv /tmp/tini/ "$GOPATH" 88 cd "$GOPATH/tini" 89 git checkout -q "$TINI_COMMIT" 90 cmake -DMINIMAL=ON . 91 make tini-static 92 cp tini-static /usr/local/bin/docker-init 93 ;; 94 95 proxy) 96 export CGO_ENABLED=0 97 install_proxy 98 ;; 99 100 proxy-dynamic) 101 PROXY_LDFLAGS="-linkmode=external" install_proxy 102 ;; 103 104 vndr) 105 echo "Install vndr version $VNDR_COMMIT" 106 git clone https://github.com/LK4D4/vndr.git "$GOPATH/src/github.com/LK4D4/vndr" 107 #mkdir -p "$GOPATH/src/github.com/LK4D4" 108 #mv /tmp/vndr/ "$GOPATH/src/github.com/LK4D4" 109 cd "$GOPATH/src/github.com/LK4D4/vndr" 110 git checkout -q "$VNDR_COMMIT" 111 go build -v -o /usr/local/bin/vndr . 112 ;; 113 114 *) 115 echo echo "Usage: $0 [tomlv|runc|containerd|tini|proxy]" 116 exit 1 117 118 esac 119 done 120 121 if [ $RM_GOPATH -eq 1 ]; then 122 rm -rf "$GOPATH" 123 fi