maj doc dkbuild

This commit is contained in:
Jephté Clain 2022-07-21 11:41:01 +04:00
parent 1db7d08e82
commit 2ae8406a4b
1 changed files with 22 additions and 20 deletions

42
dkbuild
View File

@ -164,8 +164,8 @@ Un fichier dkbuild est un script shell utilisé pour construire une ou plusieurs
images docker.
A cause de l'implémentation utilisée pour les directives, le fichier doit être
est parcouru (i.e exécuté) à de multiples reprises pour analyser les paramètres
et variables définis. il faut donc \"protéger\" les appels de scripts externes ou
parcouru (i.e exécuté) à de multiples reprises pour analyser les paramètres et
variables définis. il faut donc \"protéger\" les appels de scripts externes ou
de fonctions gourmandes avec les commandes 'run' et 'call' pour éviter que ces
commandes ne soient exécutées à plusieurs reprises.
@ -188,7 +188,7 @@ La première distribution listée est spéciale: c'est la distribution la plus
récente, celle qui reçoit le tag :latest
La commande 'dist' permet de tester si la distribution spécifiée en argument a
été sélectionnée par l'utilisateur. L'argument '#latest' permet de tester la
été sélectionnée par l'utilisateur. L'argument 'LATEST' permet de tester la
dernière distribution.
La commande 'version' permet de tester si la version spécifiée en argument a été
@ -208,6 +208,8 @@ Exemple:
elif dist d9; then
...
fi
NB: ici, la version 3.1 est listée après la version 3.0 pour que l'image
construite aie le tag :latest
Note: 'setdists' ne doit être utilisé qu'une seule fois. Les invocations
suivantes sont ignorées.
@ -223,7 +225,7 @@ script s'arrête avec une erreur. Le premier profil listé est spécial: c'est l
profil par défaut.
La commande 'profile' permet de tester si le profil spécifié en argument a été
sélectionné par l'utilisateur. L'argument '#default' permet de tester le profil
sélectionné par l'utilisateur. L'argument 'DEFAULT' permet de tester le profil
par défaut.
Exemple:
@ -358,7 +360,7 @@ est équivalent à:
fi
En phase d'analyse, ces commandes retournent faux, donc cmd1 et cmd2 ne seront
lancés qu'une seule fois lors de l'analyse du fichier. Cela signifie qu'il ne
lancés qu'une seule fois lors de l'invocation de dkbuild. Cela signifie qu'il ne
faut pas utiliser des directives de définition de variables à l'intérieur. Par
exemple, le script suivant ne produit pas forcément l'effet escompté:
if run; then
@ -522,7 +524,7 @@ Par exemple:
échoue si SRCDIR et/ou DESTDIR sont des fichiers
* les commandes suivantes sont équivalentes:
copy SRC DESTDIR/
copy SRC DESTDIR/SRC
copy SRC DESTDIR/SRCNAME
Les paramètres optionnels sont
* copy
@ -546,7 +548,7 @@ Les paramètres optionnels sont
USAGE: genfile OUTPUT [INPUT] [PARAMS]
Si le fichier INPUT est spécifié, il est utilisé pour créer le contenu initial
du fichier. Sinon, l'entrée standard doit être redirigée depuis un fichier, et
du fichier. Sinon, l'entrée standard *doit* être redirigée depuis un fichier, et
elle est lue pour générer le contenu initial du fichier à générer.
Les paramètres optionnels sont
@ -560,7 +562,7 @@ Les paramètres optionnels sont
USAGE: dockerfile [OUTPUT [INPUT]] [PARAMS]
Si le fichier INPUT est spécifié, il est utilisé pour créer le contenu initial
du fichier. Sinon, si l'entrée standard est redirigée depuis un fichier, elle
du fichier. Sinon, *si* l'entrée standard est redirigée depuis un fichier, elle
est lue pour générer le contenu initial du fichier.
Les paramètres optionnels sont
@ -635,9 +637,9 @@ Les actions valides sont
* shell -- lancer un shell utilisateur dans le répertoire du projet
* none -- ne rien faire
L'action est exécutée sur DESTDIR qui vaut par défaut le répertoire courant.
Juste avant de lancer l'action, le répertoire courant est modifié pour être
DESTDIR, ce qui permet d'utiliser des chemins relatifs le cas échéant.
L'action est exécutée sur DESTDIR. Juste avant de lancer l'action, le répertoire
courant est modifié pour être DESTDIR, ce qui permet d'utiliser des chemins
relatifs le cas échéant.
La commande 'rshell' lance un shell bash avec l'utilisateur root au lieu de
lancer la commande composer, ce qui permet de faire des opérations plus
@ -694,7 +696,7 @@ Les paramètres optionnels sont
liste de commandes à lancer pour configurer le container. Un container ayant
pour base COMPOSER_IMAGE et nommé d'après le nom du projet est préparé et les
commandes spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
Ce paramétrage est utilisé pour par exemple installer certains packages
Ce paramétrage est utilisé par exemple pour installer certains packages
nécessaire au projet.
* project-name=PROJECT_NAME
si setup= est défini, nommer l'image sur la base de ce nom. par défaut, le nom
@ -725,9 +727,9 @@ Les actions valides sont
* java -- lancer java au lieu de lancer mvn. il est possible de spécifier la
version de java directement, e.g java7, java8, java11
L'action est exécutée sur DESTDIR qui vaut par défaut le répertoire courant.
Juste avant de lancer l'action, le répertoire courant est modifié pour être
DESTDIR, ce qui permet d'utiliser des chemins relatifs le cas échéant.
L'action est exécutée sur DESTDIR. Juste avant de lancer l'action, le répertoire
courant est modifié pour être DESTDIR, ce qui permet d'utiliser des chemins
relatifs le cas échéant.
La commande 'rshell' lance un shell bash avec l'utilisateur root au lieu de
lancer la commande mvn, ce qui permet de faire des opérations plus complexes si
@ -765,7 +767,7 @@ Les paramètres optionnels sont
liste de commandes à lancer pour configurer le container. Un container ayant
pour base MAVEN_IMAGE et nommé d'après le nom du projet est préparé et les
commandes spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
Ce paramétrage est utilisé pour par exemple installer certains packages
Ce paramétrage est utilisé par exemple pour installer certains packages
nécessaire au projet.
* project-name=PROJECT_NAME
si setup= est défini, nommer l'image sur la base de ce nom. par défaut, le nom
@ -1066,7 +1068,7 @@ function define_functions_env() {
function dist() {
local dist version
for dist in "$@"; do
[ "$dist" == "#latest" ] && dist="${SETDISTS[0]}"
[ "$dist" == LATEST ] && dist="${SETDISTS[0]}"
parse_dist "$dist" dist version
[ "$dist" == "$DIST" ] || continue
[ -z "$version" -o "$version" == "$DVERSION" ] || continue
@ -1084,7 +1086,7 @@ function define_functions_env() {
function profile() {
local profile version
for profile in "$@"; do
[ "$profile" == "#default" ] && profile="${SETPROFILES[0]}"
[ "$profile" == DEFAULT ] && profile="${SETPROFILES[0]}"
parse_profile "$profile" profile version
[ "$profile" == "$PROFILE" ] || continue
[ -z "$version" -o "$version" == "$PVERSION" ] || continue
@ -1748,9 +1750,9 @@ function define_functions_cmd() {
done
if [ -n "$autotag" ]; then
if [ -n "$DIST" ]; then
dist "#latest" && imagetags+=("$imagetag:latest")
dist LATEST && imagetags+=("$imagetag:latest")
elif [ -n "$PROFILE" ]; then
profile "#default" && imagetags+=("$imagetag:latest")
profile DEFAULT && imagetags+=("$imagetag:latest")
else
imagetags+=("$imagetag:latest")
fi