🕾 Tracim sur mon NAS, partie 1b: Partage public d'une image multiplateforme avec Buildah

| ~ 2 mins | 353 mots

Une autre façon de faire, publiez publiquement une image !

Si vous avez lu mon prĂ©cĂ©dent article , j’expliquais qu’il Ă©tait facile avec Buildah de produire une image pour une plateforme diffĂ©rente.

Dans cet article-ci, je reviens sur cette procĂ©dure, en explorant la possibilitĂ© de tirer plutĂŽt parti du serveur de stockage d’image public tout en proposant des images multi-architectures.

Le principe d’une image multi-architecture, est qu’avec un mĂȘme nom, il est possible depuis des systĂšmes de diffĂ©rente architecture processeur d’utiliser le mĂȘme nom d’image. Il ne s’agit pas Ă  proprement parler d’image multi-plateforme, mais d’un alias unique permettant Ă  chaque systĂšme de rĂ©cupĂ©rer l’image compatible.

J’ai pour ce faire suivis attentivement ce tutoriel, merci Ă  Dan Manners. Cet article n’est donc qu’une application un peu plus concrĂšte de son article.

Mise en application

# dépendances nécessaire sous debian
sudo apt install podman buildah git qemu-user-static qemu git

On rĂ©cupĂšre le code nĂ©cessaire pour la gĂ©nĂ©ration de l’image :

cd /tmp
git clone --depth 1 --branch release_04.05.00 https://github.com/tracim/tracim.git tracim
cd tracim//tools_docker/Debian_Uwsgi_ARM64

Ce qui aboutit en changeant quelques points au script ci-dessous.

Avant de l’utiliser :

#!/bin/bash

set -e
export TRACIM_VERSION="4.5"
# Set your manifest name
export MANIFEST_NAME="tracim-${TRACIM_VERSION}-no-vtk"

# Set the required variables
export BUILD_PATH="/tmp/tracim/tools_docker/Debian_Uwsgi_ARM64/"
export REGISTRY="ghcr.io"
export USER="inkhey"
export IMAGE_NAME="tracim"
export IMAGE_TAG="${TRACIM_VERSION}-no-vtk"

buildah logih $REGISTRY
# Create a multi-architecture manifest
buildah manifest create ${MANIFEST_NAME}

# Build your amd64 architecture container
#buildah bud \
    --tag "${REGISTRY}/${USER}/${IMAGE_NAME}:${IMAGE_TAG}" \
    --manifest ${MANIFEST_NAME} \
    --arch amd64 \
    ${BUILD_PATH}

# Build your arm64 architecture container
buildah bud \
    --tag "${REGISTRY}/${USER}/${IMAGE_NAME}:${IMAGE_TAG}" \
    --manifest ${MANIFEST_NAME} \
    --arch arm64 \
    ${BUILD_PATH}

# Push the full manifest, with both CPU Architectures
buildah manifest push --all ${MANIFEST_NAME} "docker://${REGISTRY}/${USER}/${IMAGE_NAME}:${IMAGE_TAG}"

Les images enfin gĂ©nĂ©rĂ©es si tout s’est bien passĂ©, il est enfin possible d’aller les rĂ©cupĂ©rer. Les miennes sont ainsi disponible ici

Vous pouvez ainsi les récupérer sous ce nom : ghcr.io/inkhey/tracim:4.5-no-vtkque ce soit depuis une machine amd64 ou arm64.

đŸ„ł

La Suite