mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-28 03:42:09 +00:00
It's too long a time to cross build agent based on docker buildx, thus we cross build rootfs based on a container with cross compile toolchain of gcc and rust with musl libc. Then we get fast build just like native build. rootfs initrd cross build is disabled as no cross compile tolchain for rust with musl lib if found for alpine and based on docker buildx takes too long a time. Fixes: #6557 Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
35 lines
1.2 KiB
Docker
35 lines
1.2 KiB
Docker
# Copyright (c) 2018 Yash Jain, 2022 IBM Corp.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
ARG IMAGE_REGISTRY=docker.io
|
|
FROM ${IMAGE_REGISTRY}/ubuntu:@OS_VERSION@
|
|
@SET_PROXY@
|
|
|
|
# makedev tries to mknod from postinst
|
|
RUN [ -x /usr/bin/systemd-detect-virt ] || ( echo "echo docker" >/usr/bin/systemd-detect-virt && chmod +x /usr/bin/systemd-detect-virt )
|
|
# hadolint ignore=DL3009,SC2046
|
|
RUN apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive \
|
|
apt-get --no-install-recommends -y install \
|
|
ca-certificates \
|
|
curl \
|
|
g++ \
|
|
$(gcc_arch="@ARCH@" && [ "$(uname -m)" != "$gcc_arch" ] && ( \
|
|
libc_arch="$gcc_arch" && \
|
|
[ "$gcc_arch" = aarch64 ] && libc_arch=arm64; \
|
|
[ "$gcc_arch" = ppc64le ] && gcc_arch=powerpc64le && libc_arch=ppc64el; \
|
|
[ "$gcc_arch" = s390x ] && gcc_arch=s390x && libc_arch=s390x; \
|
|
[ "$gcc_arch" = x86_64 ] && gcc_arch=x86-64 && libc_arch=amd64; \
|
|
echo "gcc-$gcc_arch-linux-gnu libc6-dev-$libc_arch-cross")) \
|
|
git \
|
|
make \
|
|
makedev \
|
|
multistrap \
|
|
musl-tools \
|
|
protobuf-compiler
|
|
# aarch64 requires this name -- link for all
|
|
RUN ln -s /usr/bin/musl-gcc "/usr/bin/$(uname -m)-linux-musl-gcc"
|
|
|
|
@INSTALL_RUST@
|