mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 20:24:31 +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 if [ ${IMG_USER} != "root" ]; then adduser ${IMG_USER} --uid=${UID} --gid=${GID};fi
|
||||||
RUN sh -c "echo '${IMG_USER} ALL=NOPASSWD: ALL' >> /etc/sudoers"
|
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 git
|
||||||
|
RUN apt install -y make
|
||||||
|
|
||||||
# kata deps
|
# kata deps
|
||||||
RUN apt install -y golang
|
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 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 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 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"
|
readonly rootfs_builder="${repo_root_dir}/tools/packaging/guest-image/build_image.sh"
|
||||||
|
|
||||||
@ -87,12 +87,8 @@ install_initrd() {
|
|||||||
|
|
||||||
#Install kernel asset
|
#Install kernel asset
|
||||||
install_kernel() {
|
install_kernel() {
|
||||||
info "build kernel"
|
export kernel_version="$(yq r $versions_yaml assets.kernel.version)"
|
||||||
export kernel_version=="$(yq r $versions_yaml assets.version)"
|
DESTDIR="${destdir}" PREFIX="${prefix}" "${kernel_builder}" "${kernel_version}"
|
||||||
"${kernel_builder}" setup
|
|
||||||
"${kernel_builder}" build
|
|
||||||
info "install kernel"
|
|
||||||
DESTDIR="${destdir}" PREFIX="${prefix}" "${kernel_builder}" install
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#Install experimental kernel asset
|
#Install experimental kernel asset
|
||||||
|
@ -28,7 +28,6 @@ download_kernel=false
|
|||||||
# The repository where kernel configuration lives
|
# The repository where kernel configuration lives
|
||||||
readonly kernel_config_repo="github.com/${project_name}/kata-containers/tools/packaging"
|
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="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
|
# Default path to search patches to apply to kernel
|
||||||
readonly default_patches_dir="${script_dir}/patches"
|
readonly default_patches_dir="${script_dir}/patches"
|
||||||
# Default path to search config for kata
|
# Default path to search config for kata
|
||||||
@ -497,6 +496,8 @@ main() {
|
|||||||
kernel_version=$(get_from_kata_deps "assets.kernel.version")
|
kernel_version=$(get_from_kata_deps "assets.kernel.version")
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
#Remove extra 'v'
|
||||||
|
kernel_version="${kernel_version#v}"
|
||||||
|
|
||||||
if [ -z "${kernel_path}" ]; then
|
if [ -z "${kernel_path}" ]; then
|
||||||
config_version=$(get_config_version)
|
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