containerd/script/setup/install-runc
Gabriela Cervantes 24fe444eb6 script/setup/install-runc: Add trap statement to clean up tmp files
This PR adds the trap statement in the install runc script to clean
up the temporary files and ensure we are not leaving them.

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2024-10-02 19:52:02 +00:00

62 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright The containerd Authors.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Builds and installs runc to /usr/local/go/bin based off
# the commit defined in go.mod
#
set -eu -o pipefail
script_dir="$(cd -- "$(dirname -- "$0")" > /dev/null 2>&1; pwd -P)"
# e2e and Cirrus will fail with "sudo: command not found"
SUDO=''
if (( $EUID != 0 )); then
SUDO='sudo'
fi
function install_runc() {
# When updating runc-version, consider updating the runc module in go.mod as well
: "${RUNC_VERSION:=$(cat "${script_dir}/runc-version")}"
: "${RUNC_REPO:=https://github.com/opencontainers/runc.git}"
TMPROOT=$(mktemp -d)
trap "rm -fR ${TMPROOT}" EXIT
git clone "${RUNC_REPO}" "${TMPROOT}"/runc
pushd "${TMPROOT}"/runc
git checkout "${RUNC_VERSION}"
env -u VERSION make BUILDTAGS='seccomp' runc
$SUDO make install
popd
}
function install_crun() {
: "${CRUN_VERSION:=$(cat "${script_dir}/crun-version")}"
: "${CRUN_REPO:=https://github.com/containers/crun}"
$SUDO curl -S -o /usr/local/sbin/runc -L "${CRUN_REPO}"/releases/download/"${CRUN_VERSION}"/crun-"${CRUN_VERSION}"-linux-"$(go env GOARCH)"
$SUDO chmod +x /usr/local/sbin/runc
}
: "${RUNC_FLAVOR:=runc}"
case ${RUNC_FLAVOR} in
runc) install_runc ;;
crun) install_crun ;;
*)
echo >&2 "unknown runc flavor: ${RUNC_FLAVOR}"
exit 1
;;
esac