github.com/lalkh/containerd@v1.4.3/script/setup/install-runc (about)

     1  #!/usr/bin/env bash
     2  
     3  #   Copyright The containerd Authors.
     4  
     5  #   Licensed under the Apache License, Version 2.0 (the "License");
     6  #   you may not use this file except in compliance with the License.
     7  #   You may obtain a copy of the License at
     8  
     9  #       http://www.apache.org/licenses/LICENSE-2.0
    10  
    11  #   Unless required by applicable law or agreed to in writing, software
    12  #   distributed under the License is distributed on an "AS IS" BASIS,
    13  #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  #   See the License for the specific language governing permissions and
    15  #   limitations under the License.
    16  
    17  #
    18  # Builds and installs runc to /usr/local/go/bin based off
    19  # the commit defined in vendor.conf
    20  #
    21  set -eu -o pipefail
    22  
    23  function install_runc() {
    24  	RUNC_COMMIT=$(grep opencontainers/runc "$GOPATH"/src/github.com/containerd/containerd/vendor.conf | awk '{print $2}')
    25  
    26  	go get -d github.com/opencontainers/runc
    27  	cd "$GOPATH"/src/github.com/opencontainers/runc
    28  	git checkout $RUNC_COMMIT
    29  	make BUILDTAGS='apparmor seccomp selinux' runc
    30  
    31  	USESUDO=${USESUDO:-false}
    32  	if ${USESUDO}; then
    33  	  SUDO='sudo -E'
    34  	else
    35  	  SUDO=''
    36  	fi
    37  	${SUDO} make install
    38  }
    39  
    40  function install_crun() {
    41  	CRUN_VERSION=0.14
    42  	curl -o /usr/local/sbin/runc -L https://github.com/containers/crun/releases/download/${CRUN_VERSION}/crun-${CRUN_VERSION}-static-$(uname -m)
    43  	chmod +x /usr/local/sbin/runc
    44  }
    45  
    46  : ${RUNC_FLAVOR:=runc}
    47  case ${RUNC_FLAVOR} in
    48  runc) install_runc ;;
    49  crun) install_crun ;;
    50  *)
    51  	echo >&2 "unknown runc flavor: ${RUNC_FLAVOR}"
    52  	exit 1
    53  	;;
    54  esac