View on GitHub

qiot-fr-fr-utf8.github.io

Documentation for Hackfest QIoT project.

Using aarch64 VM

Implementation

Using it to build Quarkus application in native mode, and also automate the docker build image process.

Annexes

Init

$ wget https://dl.fedoraproject.org/pub/fedora/linux/releases/32/Workstation/aarch64/images/Fedora-Workstation-32-1.6.aarch64.raw.xz
$ unxz Fedora-Workstation-32-1.6.aarch64.raw.xz
$ virt-sysprep -a Fedora-Workstation-32-1.6.aarch64.raw --enable password --root-password password:fedora

Create Virtual Machine

Using “Virtual Machine Manager”, create a new machine with the following settings:

Install GraalVM

# dnf update
# dnf -y install gcc glibc-devel zlib-devel libstdc++-static
# dnf -y install java-11-openjdk
# wget https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-aarch64-20.2.0.tar.gz
# tar zxvf graalvm-ce-java11-linux-aarch64-20.2.0.tar.gz
# mkdir /usr/lib/graalvm
# mv graalvm-ce-java11-20.2.0 /usr/lib/graalvm
[...]
GRAALVM_HOME=/usr/lib/graalvm/graalvm-ce-java11-20.2.0
JAVA_HOME=$GRAALVM_HOME
export GRAALVM_HOME

PATH=$PATH:$HOME/bin:$GRAALVM_HOME/bin
export PATH

Build Application

# git clone https://github.com/QIoT-fr-FR-utf8/qiot-edge-service.git
# cd qiot-edge-service/
# gu install native-image # Do only once to ged native-image
# ./mvnw package -Pnative

Wait (a lot…)

cpu

Generate container

# podman login quay.io
# podman build -f src/main/docker/Dockerfile.native -t quay.io/acb-fr/qiot-edge-service:1-aarch64 .
# podman push quay.io/acb-fr/qiot-edge-service:1-aarch64

Contributors