Bram Prieshof 4cefcb532f Added architecture depended Java versions
using openJDK17-jre-headless  for 64-bit architecture
and openjdk8-jre for 32-bit architecture
2023-10-02 02:23:35 +02:00
2023-10-01 19:45:51 +02:00
2023-10-01 19:45:51 +02:00
2023-10-01 19:45:51 +02:00

Forced architecture LXC-CT builder

Scripts support ARM builds only.

This only works if the binary of the target system can run on the host one,
if that is not the case it will fail trying to build it.

For example you are able to build an armHF contaiter on a arm64(Aarch64) system,
or an build i368(x86) container on a amd64(x86_64) system.

Usage

Use buildDistroBuilder.sh to build distrobuilder with the required patch
Use buildCT.sh -i to iteratively build a LXC-Container template
Use buildCT.sh -a <Architecture> -d <Distro> -v <Variant> to iteratively build a LXC-Container template

Available Distros

  • Debian11 (Debian 11)
  • Debian12 (Debian 12)
  • Alpine318 (Alpine 3.18)
  • RasPiOS11 (Raspbian/Raspberry Pi OS 11)

Available Variants

  • minimal (Bare minimal for CT to run)
  • default (Adds nano and ssh server)

Available Architecture

  • armhf (All distros)
  • aarch64 (Alpine)
  • armv7 (Alpine)
  • arm64 (Debian)
  • armel (Debian)

Install software dependencies

dependencies avalible in apt

apt install ca-certificates git make debootstrap curl gcc libc-dev nano gnupg2 rsync xz-utils --no-install-recommends -y

Golang in the apt repo is not new enough install it directly from release binary

rm -rf /usr/local/go
curl -L https://go.dev/dl/go$(curl -Ls https://go.dev/VERSION?m=text |sed 's/go//g').linux-<Arch>.tar.gz -o /tmp/go.tar.gz
tar -C /usr/local -xzf /tmp/go.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> $HOME/.profile
export PATH=$PATH:/usr/local/go/bin

How it works

It applies a patch to distrobuilder before building it,
this patch disables the default architecture mapping behavior, and allows an architecture to be forced using the image.architecture_mapped= parameter.
the default behavior will check the architecture of the host system and map it to the target CT distro (for example if building a Debian container on a Aarch64 system it will map it to arm64)

Tesed on distrobuilder commit 29e94ac90dc52ae4e5fc0c6ad34951d4369aa001

Description
No description provided
Readme 89 KiB
Languages
Shell 100%