Table of Contents

Docker: Lab DI2 Image de base Centos sous Ubuntu

Objet Création d'une image de base CentOS
Niveau requis débutant, avisé
Débutant, à savoir
Suivi :DRAFT:

moby/contrib/mkimage/rinse

#!/usr/bin/env bash
set -e

rootfsDir="$1"
shift

# specifying --arch below is safe because "$@" can override it and the "latest" one wins :)

(
    set -x
    rinse --directory "$rootfsDir" --arch amd64 "$@"
)

"$(dirname "$BASH_SOURCE")/.febootstrap-minimize" "$rootfsDir"

if [ -d "$rootfsDir/etc/sysconfig" ]; then
    # allow networking init scripts inside the container to work without extra steps
    echo 'NETWORKING=yes' > "$rootfsDir/etc/sysconfig/network"
fi

# make sure we're fully up-to-date, too
(
    set -x
    chroot "$rootfsDir" yum update -y
)

moby/contrib/mkimage/.febootstrap-minimize

La commande unix febootstrap-minimise minimise un système de fichiers créé par febootstrap, ce qui signifie que les fichiers inutiles sont supprimés de l'image.

Si aucune option n'est donnée, la valeur par défaut est de minimiser autant que possible l'image, ce qui signifie, par exemple, que les paramètres régionaux sont supprimés de sorte que l'image ne sera utilisable qu'en anglais américain, sans documentation ni pages de manuel. L'image ne fonctionnera que dans un fuseau horaire UTC. Pour conserver ces paramètre on peut spécifier les options telles que:

febootstrap-minimize --keep-zoneinfo --keep-rpmdb --keep-services "$target"

Dans l'exemple on préfère utiliser un script .febootstrap-minimize construit pour remplacer cette commande.

#!/usr/bin/env bash
set -e

rootfsDir="$1"
shift

(
    cd "$rootfsDir"

    # effectively: febootstrap-minimize --keep-zoneinfo --keep-rpmdb --keep-services "$target"
    #  locales
    rm -rf usr/{{lib,share}/locale,{lib,lib64}/gconv,bin/localedef,sbin/build-locale-archive}
    #  docs and man pages
    rm -rf usr/share/{man,doc,info,gnome/help}
    #  cracklib
    rm -rf usr/share/cracklib
    #  i18n
    rm -rf usr/share/i18n
    #  yum cache
    rm -rf var/cache/yum
    mkdir -p --mode=0755 var/cache/yum
    #  sln
    rm -rf sbin/sln
    #  ldconfig
    #rm -rf sbin/ldconfig
    rm -rf etc/ld.so.cache var/cache/ldconfig
    mkdir -p --mode=0755 var/cache/ldconfig
)