mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-21 03:48:45 +00:00
In Arm baseline CI, docker starts fail with error: "no sockets found via socket activation: make sure the service was started by systemd". I find a solusion in [1] to fix it. [1] https://forums.docker.com/t/failed-to-load-listeners-no-sockets-found-via-socket-activation-make-sure-the-service-was-started-by-systemd/62505 Fixes: #6619 Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
171 lines
5.5 KiB
YAML
171 lines
5.5 KiB
YAML
name: kata-containers
|
|
website: https://github.com/kata-containers/kata-containers
|
|
summary: Build lightweight VMs that seamlessly plug into the containers ecosystem
|
|
description: |
|
|
Kata Containers is an open source project and community working to build a
|
|
standard implementation of lightweight Virtual Machines (VMs) that feel and
|
|
perform like containers, but provide the workload isolation and security
|
|
advantages of VMs
|
|
confinement: classic
|
|
adopt-info: metadata
|
|
base: core20
|
|
|
|
parts:
|
|
metadata:
|
|
plugin: nil
|
|
prime:
|
|
- -*
|
|
build-packages:
|
|
- git
|
|
- git-extras
|
|
override-pull: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
version="9999"
|
|
|
|
if echo "${GITHUB_REF:-}" | grep -q -E "^refs/tags"; then
|
|
version=$(echo ${GITHUB_REF:-} | cut -d/ -f3)
|
|
git checkout ${version}
|
|
fi
|
|
|
|
snapcraftctl set-grade "stable"
|
|
snapcraftctl set-version "${version}"
|
|
|
|
mkdir -p $(dirname ${kata_dir})
|
|
ln -sf $(realpath "${SNAPCRAFT_STAGE}/..") ${kata_dir}
|
|
|
|
docker:
|
|
after: [metadata]
|
|
plugin: nil
|
|
prime:
|
|
- -*
|
|
build-packages:
|
|
- ca-certificates
|
|
- containerd
|
|
- curl
|
|
- gnupg
|
|
- lsb-release
|
|
- runc
|
|
override-build: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |\
|
|
sudo gpg --batch --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
|
distro_codename=$(lsb_release -cs)
|
|
echo "deb [arch=${dpkg_arch} signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu ${distro_codename} stable" |\
|
|
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
sudo apt-get -y update
|
|
sudo apt-get -y install docker-ce docker-ce-cli containerd.io
|
|
|
|
echo "Unmasking docker service"
|
|
sudo -E systemctl unmask docker.service || true
|
|
sudo -E systemctl unmask docker.socket || true
|
|
echo "Adding $USER into docker group"
|
|
sudo -E gpasswd -a $USER docker
|
|
echo "Starting docker"
|
|
# docker may fail to start using "fd://" in docker.service
|
|
sudo sed -i 's/fd:\/\//unix:\/\//g' /lib/systemd/system/docker.service
|
|
sudo systemctl daemon-reload
|
|
sudo -E systemctl start docker || true
|
|
|
|
image:
|
|
after: [docker]
|
|
plugin: nil
|
|
override-build: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
cd "${SNAPCRAFT_PROJECT_DIR}"
|
|
sudo -E NO_TTY=true make rootfs-image-tarball
|
|
|
|
tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-rootfs-image.tar.xz"
|
|
|
|
tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}"
|
|
|
|
|
|
sudo -E NO_TTY=true make rootfs-initrd-tarball
|
|
|
|
tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-rootfs-initrd.tar.xz"
|
|
|
|
tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}"
|
|
|
|
|
|
runtime:
|
|
after: [docker]
|
|
plugin: nil
|
|
override-build: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
cd "${SNAPCRAFT_PROJECT_DIR}"
|
|
sudo -E NO_TTY=true make shim-v2-tarball
|
|
|
|
tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-shim-v2.tar.xz"
|
|
|
|
tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}"
|
|
|
|
mkdir -p "${SNAPCRAFT_PART_INSTALL}/usr/bin"
|
|
ln -sf "${SNAPCRAFT_PART_INSTALL}/opt/kata/bin/containerd-shim-kata-v2" "${SNAPCRAFT_PART_INSTALL}/usr/bin/containerd-shim-kata-v2"
|
|
ln -sf "${SNAPCRAFT_PART_INSTALL}/opt/kata/bin/kata-runtime" "${SNAPCRAFT_PART_INSTALL}/usr/bin/kata-runtime"
|
|
ln -sf "${SNAPCRAFT_PART_INSTALL}/opt/kata/bin/kata-collect-data.sh" "${SNAPCRAFT_PART_INSTALL}/usr/bin/kata-collect-data.sh"
|
|
|
|
kernel:
|
|
after: [docker]
|
|
plugin: nil
|
|
override-build: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
cd "${SNAPCRAFT_PROJECT_DIR}"
|
|
sudo -E NO_TTY=true make kernel-tarball
|
|
|
|
tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-kernel.tar.xz"
|
|
|
|
tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}"
|
|
|
|
qemu:
|
|
plugin: make
|
|
after: [docker]
|
|
override-build: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
cd "${SNAPCRAFT_PROJECT_DIR}"
|
|
sudo -E NO_TTY=true make qemu-tarball
|
|
|
|
tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-qemu.tar.xz"
|
|
|
|
tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}"
|
|
|
|
virtiofsd:
|
|
plugin: nil
|
|
after: [docker]
|
|
override-build: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
cd "${SNAPCRAFT_PROJECT_DIR}"
|
|
sudo -E NO_TTY=true make virtiofsd-tarball
|
|
|
|
tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-virtiofsd.tar.xz"
|
|
|
|
tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}"
|
|
|
|
cloud-hypervisor:
|
|
plugin: nil
|
|
after: [docker]
|
|
override-build: |
|
|
source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh"
|
|
|
|
if [ "${arch}" == "aarch64" ] || [ "${arch}" == "x86_64" ]; then
|
|
cd "${SNAPCRAFT_PROJECT_DIR}"
|
|
sudo -E NO_TTY=true make cloud-hypervisor-tarball
|
|
|
|
tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-cloud-hypervisor.tar.xz"
|
|
|
|
tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}"
|
|
fi
|
|
|
|
apps:
|
|
runtime:
|
|
command: usr/bin/kata-runtime
|
|
shim:
|
|
command: usr/bin/containerd-shim-kata-v2
|
|
collect-data:
|
|
command: usr/bin/kata-collect-data.sh
|