mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 12:14:48 +00:00
kernel: build: Add container build
Add script to build kernel in a container. Signed-off-by: Carlos Venegas <jos.c.venegas.munoz@intel.com>
This commit is contained in:
parent
b789a935cf
commit
d46ae3248e
@ -37,15 +37,8 @@ RUN if [ ${IMG_USER} != "root" ]; then groupadd --gid=${GID} ${IMG_USER};fi
|
||||
RUN if [ ${IMG_USER} != "root" ]; then adduser ${IMG_USER} --uid=${UID} --gid=${GID};fi
|
||||
RUN sh -c "echo '${IMG_USER} ALL=NOPASSWD: ALL' >> /etc/sudoers"
|
||||
|
||||
# kernel deps
|
||||
RUN apt install -y flex
|
||||
RUN apt install -y bison
|
||||
RUN apt install -y libelf-dev
|
||||
RUN apt install -y bc
|
||||
RUN apt install -y iptables
|
||||
RUN apt install -y build-essential
|
||||
RUN apt install -y git
|
||||
|
||||
RUN apt install -y make
|
||||
|
||||
# kata deps
|
||||
RUN apt install -y golang
|
||||
|
@ -21,7 +21,7 @@ readonly versions_yaml="${repo_root_dir}/versions.yaml"
|
||||
|
||||
readonly clh_builder="${repo_root_dir}/tools/packaging/static-build/cloud-hypervisor/build-static-clh.sh"
|
||||
readonly firecracker_builder="${repo_root_dir}/tools/packaging/static-build/firecracker/build-static-firecracker.sh"
|
||||
readonly kernel_builder="${repo_root_dir}/tools/packaging/kernel/build-kernel.sh"
|
||||
readonly kernel_builder="${repo_root_dir}/tools/packaging/static-build/kernel/build.sh"
|
||||
readonly qemu_builder="${repo_root_dir}/tools/packaging/static-build/qemu/build-static-qemu.sh"
|
||||
readonly rootfs_builder="${repo_root_dir}/tools/packaging/guest-image/build_image.sh"
|
||||
|
||||
@ -87,12 +87,8 @@ install_initrd() {
|
||||
|
||||
#Install kernel asset
|
||||
install_kernel() {
|
||||
info "build kernel"
|
||||
export kernel_version=="$(yq r $versions_yaml assets.version)"
|
||||
"${kernel_builder}" setup
|
||||
"${kernel_builder}" build
|
||||
info "install kernel"
|
||||
DESTDIR="${destdir}" PREFIX="${prefix}" "${kernel_builder}" install
|
||||
export kernel_version="$(yq r $versions_yaml assets.kernel.version)"
|
||||
DESTDIR="${destdir}" PREFIX="${prefix}" "${kernel_builder}" "${kernel_version}"
|
||||
}
|
||||
|
||||
#Install experimental kernel asset
|
||||
|
@ -28,7 +28,6 @@ download_kernel=false
|
||||
# The repository where kernel configuration lives
|
||||
readonly kernel_config_repo="github.com/${project_name}/kata-containers/tools/packaging"
|
||||
readonly patches_repo="github.com/${project_name}/kata-containers/tools/packaging"
|
||||
readonly patches_repo_dir="${GOPATH}/src/${patches_repo}"
|
||||
# Default path to search patches to apply to kernel
|
||||
readonly default_patches_dir="${script_dir}/patches"
|
||||
# Default path to search config for kata
|
||||
@ -497,6 +496,8 @@ main() {
|
||||
kernel_version=$(get_from_kata_deps "assets.kernel.version")
|
||||
fi
|
||||
fi
|
||||
#Remove extra 'v'
|
||||
kernel_version="${kernel_version#v}"
|
||||
|
||||
if [ -z "${kernel_path}" ]; then
|
||||
config_version=$(get_config_version)
|
||||
|
18
tools/packaging/static-build/kernel/Dockerfile
Normal file
18
tools/packaging/static-build/kernel/Dockerfile
Normal file
@ -0,0 +1,18 @@
|
||||
# Copyright (c) 2021 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
FROM ubuntu
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# kernel deps
|
||||
RUN apt update
|
||||
RUN apt install -y \
|
||||
bc \
|
||||
bison \
|
||||
build-essential \
|
||||
curl \
|
||||
flex \
|
||||
git \
|
||||
iptables \
|
||||
libelf-dev \
|
38
tools/packaging/static-build/kernel/build.sh
Executable file
38
tools/packaging/static-build/kernel/build.sh
Executable file
@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2021 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
readonly repo_root_dir="$(cd "${script_dir}/../../../.." && pwd)"
|
||||
readonly kernel_builder="${repo_root_dir}/tools/packaging/kernel/build-kernel.sh"
|
||||
|
||||
|
||||
kernel_version=${1}
|
||||
DESTDIR=${DESTDIR:-${PWD}}
|
||||
PREFIX=${PREFIX:-/opt/kata}
|
||||
container_image="kata-kernel-builder"
|
||||
|
||||
sudo docker build -t "${container_image}" "${script_dir}"
|
||||
|
||||
echo "build ${kernel_version}"
|
||||
sudo docker run --rm -i -v "${repo_root_dir}:${repo_root_dir}" \
|
||||
-w "${PWD}" \
|
||||
"${container_image}" \
|
||||
bash -c "${kernel_builder} -v ${kernel_version} setup"
|
||||
|
||||
sudo docker run --rm -i -v "${repo_root_dir}:${repo_root_dir}" \
|
||||
-w "${PWD}" \
|
||||
"${container_image}" \
|
||||
bash -c "${kernel_builder} -v ${kernel_version} build"
|
||||
|
||||
sudo docker run --rm -i -v "${repo_root_dir}:${repo_root_dir}" \
|
||||
-w "${PWD}" \
|
||||
--env DESTDIR="${DESTDIR}" --env PREFIX="${PREFIX}" \
|
||||
"${container_image}" \
|
||||
bash -c "${kernel_builder} -v ${kernel_version} install"
|
Loading…
Reference in New Issue
Block a user