images:
- location: "https://cloud.debian.org/images/cloud/bullseye/20221205-1220/debian-11-generic-amd64-20221205-1220.qcow2"
arch: "x86_64"
digest: "sha512:25c6f2b5d61b0897077533023cccb05badb2d3fd5adc9ca9071fb8f1fe5ffe682a09f12279ef8013dc5641d20ff16eedc09e3b4657d81bcf455bdb9b4cd8ba54"
- location: "https://cloud.debian.org/images/cloud/bullseye/20221205-1220/debian-11-generic-arm64-20221205-1220.qcow2"
arch: "aarch64"
digest: "sha512:9d09c70030bbbc4680f4ada358a2fc3e57f73d37789384a4230d4f374629a3edc04982ac67423e8dc4531cba9abf5f89891a974d51ebc8f48bfc626d4171f09b"
mounts:
- location: "~"
- location: "/tmp/lima"
writable: true
containerd:
system: false
user: false
provision:
- mode: system
script: |
#!/bin/sh
sed -i 's/host.lima.internal.*/host.lima.internal host.docker.internal/' /etc/hosts
- mode: system
script: |
#!/bin/bash
set -eux -o pipefail
machine=$(uname -m)
case "${machine}" in
x86_64*|i?86_64*|amd64*)
arch="amd64"
dpkg --add-architecture arm64
EOF
;;
aarch64*|arm64*)
arch="arm64"
dpkg --add-architecture amd64
;;
arm*)
arch="arm"
;;
i?86*)
arch="386"
;;
*)
echo "Unknown, unsupported architecture (${machine})." >&2
echo "Supported architectures x86_64, i686, arm, arm64." >&2
echo "Bailing out." >&2
exit 3
;;
esac
apt-get update -y
apt install -y curl git wget build-essential crossbuild-essential-amd64 crossbuild-essential-arm64
- mode: user
script: |
#!/bin/bash
set -eux -o pipefail
export CARGO_HOME=~/.cargo
mkdir $CARGO_HOME
curl -sSf https://static.rust-lang.org/rustup/rustup-init.sh -o rustup-init.sh
chmod +x rustup-init.sh
./rustup-init.sh -y --target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
kernel=$(uname -s)
case "${kernel}" in
Linux)
platform="linux"
;;
*)
echo "Unknown, unsupported platform: ${kernel}." >&2
echo "Supported platforms: Linux" >&2
echo "Bailing out." >&2
exit 2
esac
machine=$(uname -m)
case "${machine}" in
x86_64*|i?86_64*|amd64*)
arch="amd64"
{
printf "[target.aarch64-unknown-linux-gnu]\n"
printf "linker = \"aarch64-linux-gnu-gcc\"\n"
} > $CARGO_HOME/config
;;
aarch64*|arm64*)
arch="arm64"
{
printf "[target.x86_64-unknown-linux-gnu]\n"
printf "linker = \"x86_64-linux-gnu-gcc\"\n"
} > $CARGO_HOME/config
;;
arm*)
arch="arm"
;;
i?86*)
arch="386"
;;
*)
echo "Unknown, unsupported architecture (${machine})." >&2
echo "Supported architectures x86_64, i686, arm, arm64." >&2
echo "Bailing out." >&2
exit 3
;;
esac