dk et dkbuild: support .composer.yaml et setup_image
This commit is contained in:
parent
0bf0f48ad0
commit
5cc1826744
54
dk
54
dk
|
@ -230,6 +230,7 @@ COMMANDES
|
||||||
spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
||||||
Ce paramétrage est utilisé pour par exemple installer certains
|
Ce paramétrage est utilisé pour par exemple installer certains
|
||||||
packages nécessaire au projet.
|
packages nécessaire au projet.
|
||||||
|
* COMPOSER_SETUP_IMAGE -- nom final de l'image pour COMPOSER_SETUP
|
||||||
La commande 'rshell' est une extension qui lance un shell bash au lieu
|
La commande 'rshell' est une extension qui lance un shell bash au lieu
|
||||||
de lancer la commande composer, ce qui permet de faire des opérations
|
de lancer la commande composer, ce qui permet de faire des opérations
|
||||||
plus complexes si le besoin s'en fait sentir. NB: le shell est lancé
|
plus complexes si le besoin s'en fait sentir. NB: le shell est lancé
|
||||||
|
@ -267,6 +268,7 @@ COMMANDES
|
||||||
spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
||||||
Ce paramétrage est utilisé pour par exemple installer certains
|
Ce paramétrage est utilisé pour par exemple installer certains
|
||||||
packages nécessaire au projet.
|
packages nécessaire au projet.
|
||||||
|
* MAVEN_SETUP_IMAGE -- nom final de l'image pour MAVEN_SETUP
|
||||||
La commande 'rshell' est une extension qui lance un shell bash au lieu
|
La commande 'rshell' est une extension qui lance un shell bash au lieu
|
||||||
de lancer la commande mvn, ce qui permet de faire des opérations
|
de lancer la commande mvn, ce qui permet de faire des opérations
|
||||||
plus complexes si le besoin s'en fait sentir. NB: le shell est lancé
|
plus complexes si le besoin s'en fait sentir. NB: le shell est lancé
|
||||||
|
@ -1083,10 +1085,10 @@ function build_update_apps() {
|
||||||
estep "Type de dépôt: $TYPE"
|
estep "Type de dépôt: $TYPE"
|
||||||
if [ "$TYPE" == composer ]; then
|
if [ "$TYPE" == composer ]; then
|
||||||
local cvname cvvalue
|
local cvname cvvalue
|
||||||
local composer_php composer_php_max composer_image composer_cmd composer_setup composer_action
|
local composer_php composer_php_max composer_image composer_cmd composer_setup composer_setup_image composer_action
|
||||||
local -a composer_vars composer_args
|
local -a composer_vars composer_args
|
||||||
|
|
||||||
for cvname in composer_php composer_php_max composer_image composer_cmd composer_setup; do
|
for cvname in composer_php composer_php_max composer_image composer_cmd composer_setup composer_setup_image; do
|
||||||
cvvalue="${var}_${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"
|
cvvalue="${var}_${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"
|
||||||
[ -n "$cvvalue" ] || { cvvalue="${var}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
[ -n "$cvvalue" ] || { cvvalue="${var}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
[ -n "$cvvalue" ] || { cvvalue="${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
[ -n "$cvvalue" ] || { cvvalue="${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
@ -1122,10 +1124,10 @@ function build_update_apps() {
|
||||||
fi
|
fi
|
||||||
elif [ "$TYPE" == maven ]; then
|
elif [ "$TYPE" == maven ]; then
|
||||||
local cvname cvvalue
|
local cvname cvvalue
|
||||||
local maven_java maven_image maven_cmd maven_setup maven_action
|
local maven_java maven_image maven_cmd maven_setup maven_setup_image maven_action
|
||||||
local -a maven_vars maven_args
|
local -a maven_vars maven_args
|
||||||
|
|
||||||
for cvname in maven_java maven_image maven_cmd maven_setup; do
|
for cvname in maven_java maven_image maven_cmd maven_setup maven_setup_image; do
|
||||||
cvvalue="${var}_${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"
|
cvvalue="${var}_${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"
|
||||||
[ -n "$cvvalue" ] || { cvvalue="${var}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
[ -n "$cvvalue" ] || { cvvalue="${var}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
[ -n "$cvvalue" ] || { cvvalue="${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
[ -n "$cvvalue" ] || { cvvalue="${PROFILE}_${cvname^^}"; cvvalue="${!cvvalue}"; }
|
||||||
|
@ -1979,6 +1981,7 @@ function default_docker_composer() {
|
||||||
-e group="$group"
|
-e group="$group"
|
||||||
-e projdir="$projdir"
|
-e projdir="$projdir"
|
||||||
-e setup="$COMPOSER_SETUP"
|
-e setup="$COMPOSER_SETUP"
|
||||||
|
-e setup_image="$COMPOSER_SETUP_IMAGE"
|
||||||
-e composer="$COMPOSER_CMD"
|
-e composer="$COMPOSER_CMD"
|
||||||
-e args="$args"
|
-e args="$args"
|
||||||
)
|
)
|
||||||
|
@ -2008,35 +2011,36 @@ fi
|
||||||
|
|
||||||
if [ -n "$COMPOSER_SETUP" ]; then
|
if [ -n "$COMPOSER_SETUP" ]; then
|
||||||
# lancement dans un container docker à préparer
|
# lancement dans un container docker à préparer
|
||||||
local NAME project_name container_name dkid
|
local NAME setup_image project_name container_name dkid
|
||||||
if [ -f docker-compose.yml ]; then
|
if [ -f docker-compose.yml ]; then
|
||||||
compose_set_project_name set_container_name
|
compose_set_project_name set_container_name
|
||||||
else
|
else
|
||||||
NAME="$(basename -- "$(pwd)")"
|
NAME="$(basename -- "$(pwd)")"
|
||||||
docker_check_name set_container_name
|
docker_check_name set_container_name
|
||||||
fi
|
fi
|
||||||
container_name="dk_composer_${container_name}"
|
setup_image="$COMPOSER_SETUP_IMAGE"
|
||||||
|
[ -n "$setup_image" ] || setup_image="dk_composer_${container_name}_image"
|
||||||
|
|
||||||
# vérifier l'existence de l'image
|
# vérifier l'existence de l'image
|
||||||
setx dkid=docker image ls --format '{{.ID}}' "${container_name}_image"
|
setx dkid=docker image ls --format '{{.ID}}' "$setup_image"
|
||||||
|
|
||||||
# créer le container le cas échéant
|
# créer le container le cas échéant
|
||||||
if [ -z "$dkid" ]; then
|
if [ -z "$dkid" ]; then
|
||||||
estep "Création du container $container_name avec l'image $COMPOSER_IMAGE"
|
estep "Création de l'image $setup_image à partir de $COMPOSER_IMAGE"
|
||||||
cmd=(
|
cmd=(
|
||||||
"$DOCKER" create -it --name "${container_name}_ct"
|
"$DOCKER" create -it --name "${setup_image}_tmpct"
|
||||||
"${basecmd[@]}"
|
"${basecmd[@]}"
|
||||||
"$COMPOSER_IMAGE"
|
"$COMPOSER_IMAGE"
|
||||||
bash -c "$setupscript"
|
bash -c "$setupscript"
|
||||||
)
|
)
|
||||||
setx dkid="${cmd[@]}" || return 1
|
setx dkid="${cmd[@]}" || return 1
|
||||||
"$DOCKER" container start -ai "$dkid" || return 1
|
"$DOCKER" container start -ai "$dkid" || return 1
|
||||||
"$DOCKER" container commit "$dkid" "${container_name}_image" || return 1
|
"$DOCKER" container commit "$dkid" "$setup_image" || return 1
|
||||||
"$DOCKER" container rm "$dkid" || return 1
|
"$DOCKER" container rm "$dkid" || return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# prendre comme image le container créé
|
# prendre comme image le container créé
|
||||||
COMPOSER_IMAGE="${container_name}_image"
|
COMPOSER_IMAGE="$setup_image"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cmd=(
|
cmd=(
|
||||||
|
@ -2062,13 +2066,16 @@ function auto_composer() {
|
||||||
local COMPOSER_MACHINE=-u
|
local COMPOSER_MACHINE=-u
|
||||||
local COMPOSER_CMD=
|
local COMPOSER_CMD=
|
||||||
local COMPOSER_SETUP=
|
local COMPOSER_SETUP=
|
||||||
|
local COMPOSER_SETUP_IMAGE=
|
||||||
if [ -f .composer.yaml ]; then
|
if [ -f .composer.yaml ]; then
|
||||||
local registry
|
local registry
|
||||||
eval "$(<.composer.yaml grep ^composer_ |
|
eval "$(<.composer.yaml grep ^composer_ |
|
||||||
sed 's/^composer_php_min: /COMPOSER_PHP=/;
|
sed 's/^composer_php_min: /COMPOSER_PHP=/
|
||||||
s/^composer_php_max: /COMPOSER_PHP_MAX=/;
|
s/^composer_php_max: /COMPOSER_PHP_MAX=/
|
||||||
s/^composer_registry: /registry=/;
|
s/^composer_registry: /registry=/
|
||||||
s/^composer_image: \(.*\)/COMPOSER_IMAGE="${registry:-$REGISTRY}\/\1"/')"
|
s/^composer_image: \(.*\)/COMPOSER_IMAGE="${registry:-$REGISTRY}\/\1"/
|
||||||
|
s/^composer_setup: /COMPOSER_SETUP=/
|
||||||
|
s/^composer_setup_image: /COMPOSER_SETUP_IMAGE=/')"
|
||||||
elif [ -f .composer.conf ]; then
|
elif [ -f .composer.conf ]; then
|
||||||
source ./.composer.conf
|
source ./.composer.conf
|
||||||
fi
|
fi
|
||||||
|
@ -2213,6 +2220,7 @@ function default_docker_maven() {
|
||||||
-e group="$group"
|
-e group="$group"
|
||||||
-e projdir="$projdir"
|
-e projdir="$projdir"
|
||||||
-e setup="$MAVEN_SETUP"
|
-e setup="$MAVEN_SETUP"
|
||||||
|
-e setup_image="$MAVEN_SETUP_IMAGE"
|
||||||
-e maven="$MAVEN_CMD"
|
-e maven="$MAVEN_CMD"
|
||||||
-e args="$args"
|
-e args="$args"
|
||||||
${MAVEN_JAVA:+-e JAVA="$MAVEN_JAVA"}
|
${MAVEN_JAVA:+-e JAVA="$MAVEN_JAVA"}
|
||||||
|
@ -2237,35 +2245,36 @@ cd "$projdir"
|
||||||
|
|
||||||
if [ -n "$MAVEN_SETUP" ]; then
|
if [ -n "$MAVEN_SETUP" ]; then
|
||||||
# lancement dans un container docker à préparer
|
# lancement dans un container docker à préparer
|
||||||
local NAME project_name container_name dkid
|
local NAME setup_image project_name container_name dkid
|
||||||
if [ -f docker-compose.yml ]; then
|
if [ -f docker-compose.yml ]; then
|
||||||
compose_set_project_name set_container_name
|
compose_set_project_name set_container_name
|
||||||
else
|
else
|
||||||
NAME="$(basename -- "$(pwd)")"
|
NAME="$(basename -- "$(pwd)")"
|
||||||
docker_check_name set_container_name
|
docker_check_name set_container_name
|
||||||
fi
|
fi
|
||||||
container_name="dk_maven_${container_name}"
|
setup_image="$MAVEN_SETUP_IMAGE"
|
||||||
|
[ -n "$setup_image" ] || setup_image="dk_maven_${container_name}_image"
|
||||||
|
|
||||||
# vérifier l'existence de l'image
|
# vérifier l'existence de l'image
|
||||||
setx dkid=docker image ls --format '{{.ID}}' "${container_name}_image"
|
setx dkid=docker image ls --format '{{.ID}}' "$setup_image"
|
||||||
|
|
||||||
# créer le container le cas échéant
|
# créer le container le cas échéant
|
||||||
if [ -z "$dkid" ]; then
|
if [ -z "$dkid" ]; then
|
||||||
estep "Création du container $container_name avec l'image $MAVEN_IMAGE"
|
estep "Création de l'image $setup_image à partir de $MAVEN_IMAGE"
|
||||||
cmd=(
|
cmd=(
|
||||||
"$DOCKER" create -it --name "${container_name}_ct"
|
"$DOCKER" create -it --name "${setup_image}_tmpct"
|
||||||
"${basecmd[@]}"
|
"${basecmd[@]}"
|
||||||
"$MAVEN_IMAGE"
|
"$MAVEN_IMAGE"
|
||||||
bash -c "$setupscript"
|
bash -c "$setupscript"
|
||||||
)
|
)
|
||||||
setx dkid="${cmd[@]}" || return 1
|
setx dkid="${cmd[@]}" || return 1
|
||||||
"$DOCKER" container start -ai "$dkid" || return 1
|
"$DOCKER" container start -ai "$dkid" || return 1
|
||||||
"$DOCKER" container commit "$dkid" "${container_name}_image" || return 1
|
"$DOCKER" container commit "$dkid" "$setup_image" || return 1
|
||||||
"$DOCKER" container rm "$dkid" || return 1
|
"$DOCKER" container rm "$dkid" || return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# prendre comme image le container créé
|
# prendre comme image le container créé
|
||||||
MAVEN_IMAGE="${container_name}_image"
|
MAVEN_IMAGE="$setup_image"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cmd=(
|
cmd=(
|
||||||
|
@ -2290,6 +2299,7 @@ function auto_maven() {
|
||||||
local MAVEN_MACHINE=-u
|
local MAVEN_MACHINE=-u
|
||||||
local MAVEN_CMD=
|
local MAVEN_CMD=
|
||||||
local MAVEN_SETUP=
|
local MAVEN_SETUP=
|
||||||
|
local MAVEN_SETUP_IMAGE=
|
||||||
[ -f .maven.conf ] && source ./.maven.conf
|
[ -f .maven.conf ] && source ./.maven.conf
|
||||||
# les premiers arguments peuvent servir à redéfinir les variables
|
# les premiers arguments peuvent servir à redéfinir les variables
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
|
|
76
dkbuild
76
dkbuild
|
@ -786,18 +786,29 @@ Les paramètres optionnels sont
|
||||||
commandes spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
commandes spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
||||||
Ce paramétrage est utilisé par exemple pour installer certains packages
|
Ce paramétrage est utilisé par exemple pour installer certains packages
|
||||||
nécessaire au projet.
|
nécessaire au projet.
|
||||||
|
* setup-image=SETUP_IMAGE
|
||||||
|
forcer le nom de l'image pour setup= (la valeur de project-name= est ignorée)
|
||||||
* project-name=PROJECT_NAME
|
* project-name=PROJECT_NAME
|
||||||
si setup= est défini, nommer l'image sur la base de ce nom. par défaut, le nom
|
si setup= est défini, nommer l'image sur la base de ce nom. par défaut, le nom
|
||||||
est calculé automatiquement
|
est calculé automatiquement
|
||||||
|
|
||||||
Si un fichier .composer.conf existe dans le répertoire du projet, il est sourcé
|
Si un fichier .composer.yaml existe dans le répertoire du projet, il est analysé
|
||||||
pour obtenir les valeurs par défaut des paramètres:
|
pour obtenir les valeurs par défaut des paramètres suivants:
|
||||||
|
* composer_php_min: valeur par défaut de php=
|
||||||
|
* composer_php_max: valeur par défaut de php-max=
|
||||||
|
* composer_registry: ET composer_image: valeur par défaut de image=
|
||||||
|
* composer_setup: valeur par défaut de setup=
|
||||||
|
* composer_setup_image: valeur par défaut de setup-image=
|
||||||
|
|
||||||
|
Sinon, si un fichier .composer.conf existe dans le répertoire du projet, il est
|
||||||
|
sourcé pour obtenir les valeurs par défaut des paramètres:
|
||||||
* COMPOSER_PHP -- valeur par défaut de php=
|
* COMPOSER_PHP -- valeur par défaut de php=
|
||||||
* COMPOSER_PHP_MAX -- valeur par défaut de php-max=
|
* COMPOSER_PHP_MAX -- valeur par défaut de php-max=
|
||||||
* COMPOSER_IMAGE -- valeur par défaut de image=
|
* COMPOSER_IMAGE -- valeur par défaut de image=
|
||||||
* COMPOSER_MACHINE -- valeur par défaut de machine=
|
* COMPOSER_MACHINE -- valeur par défaut de machine=
|
||||||
* COMPOSER_CMD -- valeur par défaut de composer=
|
* COMPOSER_CMD -- valeur par défaut de composer=
|
||||||
* COMPOSER_SETUP -- valeur par défaut de setup=
|
* COMPOSER_SETUP -- valeur par défaut de setup=
|
||||||
|
* COMPOSER_SETUP_IMAGE -- valeur par défaut de setup-image=
|
||||||
|
|
||||||
## mvn -- construire projet maven
|
## mvn -- construire projet maven
|
||||||
|
|
||||||
|
@ -859,6 +870,8 @@ Les paramètres optionnels sont
|
||||||
commandes spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
commandes spécifiées y sont lancées. Ce container est réutilisé à chaque fois.
|
||||||
Ce paramétrage est utilisé par exemple pour installer certains packages
|
Ce paramétrage est utilisé par exemple pour installer certains packages
|
||||||
nécessaire au projet.
|
nécessaire au projet.
|
||||||
|
* setup-image=SETUP_IMAGE
|
||||||
|
forcer le nom de l'image pour setup= (la valeur de project-name= est ignorée)
|
||||||
* project-name=PROJECT_NAME
|
* project-name=PROJECT_NAME
|
||||||
si setup= est défini, nommer l'image sur la base de ce nom. par défaut, le nom
|
si setup= est défini, nommer l'image sur la base de ce nom. par défaut, le nom
|
||||||
est calculé automatiquement
|
est calculé automatiquement
|
||||||
|
@ -870,6 +883,7 @@ pour obtenir les valeurs par défaut des paramètres:
|
||||||
* MAVEN_MACHINE -- valeur par défaut de machine=
|
* MAVEN_MACHINE -- valeur par défaut de machine=
|
||||||
* MAVEN_CMD -- valeur par défaut de mvn=
|
* MAVEN_CMD -- valeur par défaut de mvn=
|
||||||
* MAVEN_SETUP -- valeur par défaut de setup=
|
* MAVEN_SETUP -- valeur par défaut de setup=
|
||||||
|
* MAVEN_SETUP_IMAGE -- valeur par défaut de setup-image=
|
||||||
|
|
||||||
## run -- lancer des commandes
|
## run -- lancer des commandes
|
||||||
|
|
||||||
|
@ -2214,6 +2228,7 @@ function define_functions_cmd() {
|
||||||
-e group="$group"
|
-e group="$group"
|
||||||
-e projdir="$projdir"
|
-e projdir="$projdir"
|
||||||
-e setup="$setup"
|
-e setup="$setup"
|
||||||
|
-e setup_image="$setup_image"
|
||||||
-e composer="$composer"
|
-e composer="$composer"
|
||||||
-e args="$args"
|
-e args="$args"
|
||||||
)
|
)
|
||||||
|
@ -2243,32 +2258,33 @@ fi
|
||||||
|
|
||||||
if [ -n "$setup" ]; then
|
if [ -n "$setup" ]; then
|
||||||
local project_name container_name ctid
|
local project_name container_name ctid
|
||||||
|
local setup_image="$setup_image"
|
||||||
|
|
||||||
# lancement dans un container docker à préparer
|
# lancement dans un container docker à préparer
|
||||||
[ -n "$project_name" ] || setx project_name=get_project_name
|
[ -n "$project_name" ] || setx project_name=get_project_name
|
||||||
setx container_name=get_container_name "$project_name"
|
setx container_name=get_container_name "$project_name"
|
||||||
container_name="dkbuild_composer_${container_name}"
|
[ -n "$setup_image" ] || setup_image="dkbuild_composer_${container_name}_image"
|
||||||
|
|
||||||
# vérifier l'existence de l'image
|
# vérifier l'existence de l'image
|
||||||
setx ctid=docker image ls --format '{{.ID}}' "${container_name}_image"
|
setx ctid=docker image ls --format '{{.ID}}' "$setup_image"
|
||||||
|
|
||||||
# créer le container le cas échéant
|
# créer le container le cas échéant
|
||||||
if [ -z "$ctid" ]; then
|
if [ -z "$ctid" ]; then
|
||||||
estep "Création du container $container_name à partir de l'image $image"
|
estep "Création de l'image $setup_image à partir de $image"
|
||||||
cmd=(
|
cmd=(
|
||||||
docker create -it --name "${container_name}_ct"
|
docker create -it --name "${setup_image}_tmpct"
|
||||||
"${basecmd[@]}"
|
"${basecmd[@]}"
|
||||||
"$image"
|
"$image"
|
||||||
bash -c "$setupscript"
|
bash -c "$setupscript"
|
||||||
)
|
)
|
||||||
setx ctid="${cmd[@]}" &&
|
setx ctid="${cmd[@]}" &&
|
||||||
docker container start -ai "$ctid" &&
|
docker container start -ai "$ctid" &&
|
||||||
docker container commit "$ctid" "${container_name}_image" &&
|
docker container commit "$ctid" "$setup_image" &&
|
||||||
docker container rm "$ctid" || die
|
docker container rm "$ctid" || die
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# prendre comme image le container créé
|
# prendre comme image le container créé
|
||||||
image="${container_name}_image"
|
image="$setup_image"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$action" in
|
case "$action" in
|
||||||
|
@ -2317,8 +2333,29 @@ fi
|
||||||
[ "$host_mappings" == __UNDEFINED__ ] && host_mappings="${DEFAULTS[docker_host-mappings]}"
|
[ "$host_mappings" == __UNDEFINED__ ] && host_mappings="${DEFAULTS[docker_host-mappings]}"
|
||||||
local composer="${DEFAULTS[composer_composer]}"
|
local composer="${DEFAULTS[composer_composer]}"
|
||||||
local setup="${DEFAULTS[composer_setup]}"
|
local setup="${DEFAULTS[composer_setup]}"
|
||||||
|
local setup_image="${DEFAULTS[composer_setup-image]}"
|
||||||
local project_name="${DEFAULTS[composer_project-name]}"
|
local project_name="${DEFAULTS[composer_project-name]}"
|
||||||
if [ -f "$destdir/.composer.conf" ]; then
|
if [ -f "$destdir/.composer.yaml" ]; then
|
||||||
|
eval "$(
|
||||||
|
COMPOSER_PHP=
|
||||||
|
COMPOSER_PHP_MAX=
|
||||||
|
COMPOSER_IMAGE="$COMPOSER_IMAGE"
|
||||||
|
COMPOSER_SETUP=
|
||||||
|
COMPOSER_SETUP_IMAGE=
|
||||||
|
eval "$(<"$destdir/.composer.yaml" grep ^composer_ |
|
||||||
|
sed 's/^composer_php_min: /COMPOSER_PHP=/
|
||||||
|
s/^composer_php_max: /COMPOSER_PHP_MAX=/
|
||||||
|
s/^composer_registry: /registry=/
|
||||||
|
s/^composer_image: \(.*\)/COMPOSER_IMAGE="${registry:-$REGISTRY}\/\1"/
|
||||||
|
s/^composer_setup: /COMPOSER_SETUP=/
|
||||||
|
s/^composer_setup_image: /COMPOSER_SETUP_IMAGE=/')"
|
||||||
|
[ -z "$php" ] && echo_setv php="$COMPOSER_PHP"
|
||||||
|
[ -z "$php_max" ] && echo_setv php_max="$COMPOSER_PHP_MAX"
|
||||||
|
[ -z "$image" ] && echo_setv image="$COMPOSER_IMAGE"
|
||||||
|
[ -z "$setup" ] && echo_setv setup="$COMPOSER_SETUP"
|
||||||
|
[ -z "$setup_image" ] && echo_setv setup_image="$COMPOSER_SETUP_IMAGE"
|
||||||
|
)"
|
||||||
|
elif [ -f "$destdir/.composer.conf" ]; then
|
||||||
eval "$(
|
eval "$(
|
||||||
COMPOSER_PHP=
|
COMPOSER_PHP=
|
||||||
COMPOSER_PHP_MAX=
|
COMPOSER_PHP_MAX=
|
||||||
|
@ -2326,6 +2363,7 @@ fi
|
||||||
COMPOSER_MACHINE=-u
|
COMPOSER_MACHINE=-u
|
||||||
COMPOSER_CMD=
|
COMPOSER_CMD=
|
||||||
COMPOSER_SETUP=
|
COMPOSER_SETUP=
|
||||||
|
COMPOSER_SETUP_IMAGE=
|
||||||
source "$destdir/.composer.conf"
|
source "$destdir/.composer.conf"
|
||||||
[ -z "$php" ] && echo_setv php="$COMPOSER_PHP"
|
[ -z "$php" ] && echo_setv php="$COMPOSER_PHP"
|
||||||
[ -z "$php_max" ] && echo_setv php_max="$COMPOSER_PHP_MAX"
|
[ -z "$php_max" ] && echo_setv php_max="$COMPOSER_PHP_MAX"
|
||||||
|
@ -2333,6 +2371,7 @@ fi
|
||||||
[ -z "$machine" ] && echo_setv machine="$COMPOSER_MACHINE"
|
[ -z "$machine" ] && echo_setv machine="$COMPOSER_MACHINE"
|
||||||
[ -z "$composer" ] && echo_setv composer="$COMPOSER_CMD"
|
[ -z "$composer" ] && echo_setv composer="$COMPOSER_CMD"
|
||||||
[ -z "$setup" ] && echo_setv setup="$COMPOSER_SETUP"
|
[ -z "$setup" ] && echo_setv setup="$COMPOSER_SETUP"
|
||||||
|
[ -z "$setup_image" ] && echo_setv setup_image="$COMPOSER_SETUP_IMAGE"
|
||||||
)"
|
)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -2348,6 +2387,7 @@ fi
|
||||||
host-mappings=*) host_mappings="${1#host-mappings=}";;
|
host-mappings=*) host_mappings="${1#host-mappings=}";;
|
||||||
composer=*) composer="${1#composer=}";;
|
composer=*) composer="${1#composer=}";;
|
||||||
setup=*) setup="${1#setup=}";;
|
setup=*) setup="${1#setup=}";;
|
||||||
|
setup-image=*) setup_image="${1#setup-image=}";;
|
||||||
project-name=*) project_name="${1#project-name=}";;
|
project-name=*) project_name="${1#project-name=}";;
|
||||||
*=*) ewarn "composer: $1: argument ignoré";;
|
*=*) ewarn "composer: $1: argument ignoré";;
|
||||||
*) break;;
|
*) break;;
|
||||||
|
@ -2513,6 +2553,7 @@ exit((PHP_VERSION_ID < $version)? 0: 1);
|
||||||
-e group="$group"
|
-e group="$group"
|
||||||
-e projdir="$projdir"
|
-e projdir="$projdir"
|
||||||
-e setup="$setup"
|
-e setup="$setup"
|
||||||
|
-e setup_image="$setup_image"
|
||||||
-e mvn="$mvn"
|
-e mvn="$mvn"
|
||||||
-e args="$args"
|
-e args="$args"
|
||||||
${java:+-e JAVA="$java"}
|
${java:+-e JAVA="$java"}
|
||||||
|
@ -2538,32 +2579,33 @@ cd "$projdir"
|
||||||
|
|
||||||
if [ -n "$setup" ]; then
|
if [ -n "$setup" ]; then
|
||||||
local project_name container_name ctid
|
local project_name container_name ctid
|
||||||
|
local setup_image="$setup_image"
|
||||||
|
|
||||||
# lancement dans un container docker à préparer
|
# lancement dans un container docker à préparer
|
||||||
[ -n "$project_name" ] || setx project_name=get_project_name
|
[ -n "$project_name" ] || setx project_name=get_project_name
|
||||||
setx container_name=get_container_name "$project_name"
|
setx container_name=get_container_name "$project_name"
|
||||||
container_name="dkbuild_maven_${container_name}"
|
[ -n "$setup_image" ] || setup_image="dkbuild_maven_${container_name}_image"
|
||||||
|
|
||||||
# vérifier l'existence de l'image
|
# vérifier l'existence de l'image
|
||||||
setx ctid=docker image ls --format '{{.ID}}' "${container_name}_image"
|
setx ctid=docker image ls --format '{{.ID}}' "$setup_image"
|
||||||
|
|
||||||
# créer le container le cas échéant
|
# créer le container le cas échéant
|
||||||
if [ -z "$ctid" ]; then
|
if [ -z "$ctid" ]; then
|
||||||
estep "Création du container $container_name à partir de l'image $image"
|
estep "Création de l'image $setup_image à partir de $image"
|
||||||
cmd=(
|
cmd=(
|
||||||
docker create -it --name "${container_name}_ct"
|
docker create -it --name "${setup_image}_tmpct"
|
||||||
"${basecmd[@]}"
|
"${basecmd[@]}"
|
||||||
"$image"
|
"$image"
|
||||||
bash -c "$setupscript"
|
bash -c "$setupscript"
|
||||||
)
|
)
|
||||||
setx ctid="${cmd[@]}" &&
|
setx ctid="${cmd[@]}" &&
|
||||||
docker container start -ai "$ctid" &&
|
docker container start -ai "$ctid" &&
|
||||||
docker container commit "$ctid" "${container_name}_image" &&
|
docker container commit "$ctid" "$setup_image" &&
|
||||||
docker container rm "$ctid" || die
|
docker container rm "$ctid" || die
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# prendre comme image le container créé
|
# prendre comme image le container créé
|
||||||
image="${container_name}_image"
|
image="$setup_image"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$action" in
|
case "$action" in
|
||||||
|
@ -2608,6 +2650,7 @@ cd "$projdir"
|
||||||
[ "$host_mappings" == __UNDEFINED__ ] && host_mappings="${DEFAULTS[docker_host-mappings]}"
|
[ "$host_mappings" == __UNDEFINED__ ] && host_mappings="${DEFAULTS[docker_host-mappings]}"
|
||||||
local mvn="${DEFAULTS[mvn_mvn]}"
|
local mvn="${DEFAULTS[mvn_mvn]}"
|
||||||
local setup="${DEFAULTS[mvn_setup]}"
|
local setup="${DEFAULTS[mvn_setup]}"
|
||||||
|
local setup_image="${DEFAULTS[mvn_setup-image]}"
|
||||||
local project_name="${DEFAULTS[mvn_project-name]}"
|
local project_name="${DEFAULTS[mvn_project-name]}"
|
||||||
if [ -f "$destdir/.maven.conf" ]; then
|
if [ -f "$destdir/.maven.conf" ]; then
|
||||||
eval "$(
|
eval "$(
|
||||||
|
@ -2616,12 +2659,14 @@ cd "$projdir"
|
||||||
MAVEN_MACHINE=-u
|
MAVEN_MACHINE=-u
|
||||||
MAVEN_CMD=
|
MAVEN_CMD=
|
||||||
MAVEN_SETUP=
|
MAVEN_SETUP=
|
||||||
|
MAVEN_SETUP_IMAGE=
|
||||||
source "$destdir/.maven.conf"
|
source "$destdir/.maven.conf"
|
||||||
[ -z "$java" ] && echo_setv java="$MAVEN_JAVA"
|
[ -z "$java" ] && echo_setv java="$MAVEN_JAVA"
|
||||||
[ -z "$image" ] && echo_setv image="$MAVEN_IMAGE"
|
[ -z "$image" ] && echo_setv image="$MAVEN_IMAGE"
|
||||||
[ -z "$machine" ] && echo_setv machine="$MAVEN_MACHINE"
|
[ -z "$machine" ] && echo_setv machine="$MAVEN_MACHINE"
|
||||||
[ -z "$mvn" ] && echo_setv mvn="$MAVEN_CMD"
|
[ -z "$mvn" ] && echo_setv mvn="$MAVEN_CMD"
|
||||||
[ -z "$setup" ] && echo_setv setup="$MAVEN_SETUP"
|
[ -z "$setup" ] && echo_setv setup="$MAVEN_SETUP"
|
||||||
|
[ -z "$setup_image" ] && echo_setv setup_image="$MAVEN_SETUP_IMAGE"
|
||||||
)"
|
)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -2636,6 +2681,7 @@ cd "$projdir"
|
||||||
host-mappings=*) host_mappings="${1#host-mappings=}";;
|
host-mappings=*) host_mappings="${1#host-mappings=}";;
|
||||||
mvn=*) mvn="${1#mvn=}";;
|
mvn=*) mvn="${1#mvn=}";;
|
||||||
setup=*) setup="${1#setup=}";;
|
setup=*) setup="${1#setup=}";;
|
||||||
|
setup-image=*) setup_image="${1#setup-image=}";;
|
||||||
project-name=*) project_name="${1#project-name=}";;
|
project-name=*) project_name="${1#project-name=}";;
|
||||||
*=*) ewarn "mvn: $1: argument ignoré";;
|
*=*) ewarn "mvn: $1: argument ignoré";;
|
||||||
*) break;;
|
*) break;;
|
||||||
|
|
Loading…
Reference in New Issue