|
|
|
@ -138,14 +138,22 @@ COMMANDES
|
|
|
|
|
X|prune
|
|
|
|
|
Supprimer les containers et les images inutilisées
|
|
|
|
|
|
|
|
|
|
composer|ci|cu|cs [args...]
|
|
|
|
|
composer|ci|cu|cr|cs [args...]
|
|
|
|
|
Frontend pour lancer composer à l'intérieur d'un container. Les
|
|
|
|
|
commandes 'ci', 'cu' et 'cs' sont respectivement des alias pour
|
|
|
|
|
'composer install', 'composer update' et 'composer shell'
|
|
|
|
|
commandes 'ci', 'cu', 'cr', 'cs' sont des alias pour 'composer install',
|
|
|
|
|
'composer update', 'composer rshell' et 'composer shell' respectivement
|
|
|
|
|
S'il existe un fichier .composer.conf dans le répertoire du projet, il
|
|
|
|
|
est sourcé. Ce fichier définit des variables qui indiquent comment la
|
|
|
|
|
commande composer est lancée. Les variables suivantes peuvent être
|
|
|
|
|
définies:
|
|
|
|
|
* COMPOSER_PHP -- Version de PHP en dessous de laquelle COMPOSER_IMAGE
|
|
|
|
|
est utilisé. En d'autres termes, c'est la version minimum de PHP
|
|
|
|
|
nécessaire pour faire tourner composer. L'idée est que si la version
|
|
|
|
|
de PHP installée est suffisante, il n'est pas nécessaire de passer par
|
|
|
|
|
une image docker.
|
|
|
|
|
Cette valeur doit être spécifiée avec le format de PHP_VERSION_ID i.e
|
|
|
|
|
70300 pour PHP 7.3
|
|
|
|
|
Spécifier 'any' ou 'force' pour forcer l'utilisation de l'image docker
|
|
|
|
|
* COMPOSER_IMAGE -- Image utilisée pour lancer composer. La valeur par
|
|
|
|
|
défaut est:
|
|
|
|
|
$DEFAULT_COMPOSER_IMAGE
|
|
|
|
@ -167,11 +175,11 @@ 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 nécessaire au projet.
|
|
|
|
|
La commande 'shell' est une extension qui lance un shell bash au lieu 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é avec
|
|
|
|
|
l'utilisateur root. La commande alternative 'ushell' lance le shell avec
|
|
|
|
|
le compte utilisateur.
|
|
|
|
|
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
|
|
|
|
|
plus complexes si le besoin s'en fait sentir. NB: le shell est lancé
|
|
|
|
|
avec l'utilisateur root. La commande alternative 'shell' lance le shell
|
|
|
|
|
avec le compte utilisateur.
|
|
|
|
|
Pour faciliter l'utilisation dans un script, les premiers arguments
|
|
|
|
|
peuvent être utilisés pour redéfinir les variables COMPOSER_*, e.g
|
|
|
|
|
$scriptname composer COMPOSER_IMAGE=none install
|
|
|
|
@ -1275,12 +1283,12 @@ EOF
|
|
|
|
|
function default_local_composer() {
|
|
|
|
|
# lancement direct
|
|
|
|
|
case "$1" in
|
|
|
|
|
rootshell|shell|rootbash|bash)
|
|
|
|
|
rootshell|rshell|rootbash|rbash)
|
|
|
|
|
# ewarn parce qu'on est pas root dans ce shell contrairement à ce qui est demandé
|
|
|
|
|
ewarn "Lancement d'un shell utilisateur"
|
|
|
|
|
ewarn "Lancement d'un shell utilisateur alors qu'un shell root est demandé"
|
|
|
|
|
bash "$@"
|
|
|
|
|
;;
|
|
|
|
|
usershell|ushell|userbash|ubash)
|
|
|
|
|
usershell|shell|userbash|bash)
|
|
|
|
|
estep "Lancement d'un shell utilisateur"
|
|
|
|
|
bash "$@"
|
|
|
|
|
;;
|
|
|
|
@ -1303,11 +1311,11 @@ function default_docker_composer() {
|
|
|
|
|
setx group=id -gn; setx group=getent group "$group"
|
|
|
|
|
setx projdir=pwd
|
|
|
|
|
case "$1" in
|
|
|
|
|
rootshell|shell|rootbash|bash)
|
|
|
|
|
rootshell|rshell|rootbash|rbash)
|
|
|
|
|
actualcmd='eval "bash $args"'
|
|
|
|
|
shift
|
|
|
|
|
;;
|
|
|
|
|
usershell|ushell|userbash|ubash)
|
|
|
|
|
usershell|shell|userbash|bash)
|
|
|
|
|
actualcmd='eval "su-exec \"$user\" bash $args"'
|
|
|
|
|
shift
|
|
|
|
|
;;
|
|
|
|
@ -1390,6 +1398,7 @@ fi
|
|
|
|
|
function local_composer() { default_local_composer "$@"; }
|
|
|
|
|
function docker_composer() { default_docker_composer "$@"; }
|
|
|
|
|
function auto_composer() {
|
|
|
|
|
local COMPOSER_PHP=
|
|
|
|
|
local COMPOSER_IMAGE="$DEFAULT_COMPOSER_IMAGE"
|
|
|
|
|
local COMPOSER_MACHINE=-u
|
|
|
|
|
local COMPOSER_CMD=
|
|
|
|
@ -1398,6 +1407,7 @@ function auto_composer() {
|
|
|
|
|
# les premiers arguments peuvent service à redéfinir les variables
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
|
case "$1" in
|
|
|
|
|
COMPOSER_PHP=*) setv "$1"; shift;;
|
|
|
|
|
COMPOSER_IMAGE=*) setv "$1"; shift;;
|
|
|
|
|
COMPOSER_MACHINE=*) setv "$1"; shift;;
|
|
|
|
|
COMPOSER_CMD=*) setv "$1"; shift;;
|
|
|
|
@ -1406,10 +1416,27 @@ function auto_composer() {
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [ "$COMPOSER_IMAGE" == none ]; then
|
|
|
|
|
local_composer "$@"
|
|
|
|
|
|
|
|
|
|
local use_image
|
|
|
|
|
if [ -z "$COMPOSER_PHP" ]; then
|
|
|
|
|
# pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE
|
|
|
|
|
[ "$COMPOSER_IMAGE" != none ] && use_image=1
|
|
|
|
|
elif [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
|
|
|
|
|
use_image=1
|
|
|
|
|
else
|
|
|
|
|
# Vérifier la version de PHP
|
|
|
|
|
php -r '
|
|
|
|
|
$version = $argv[1];
|
|
|
|
|
if (strpos($version, ".") !== false) {
|
|
|
|
|
$version = explode(".", $version);
|
|
|
|
|
$version = $version[0] * 10000 + $version[1] * 100 + (isset($version[2])? $version[2]: 0);
|
|
|
|
|
}
|
|
|
|
|
exit((PHP_VERSION_ID < $version)? 0: 1);
|
|
|
|
|
' -- "$COMPOSER_PHP" && use_image=1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -n "$use_image" ]; then
|
|
|
|
|
[ "$COMPOSER_IMAGE" != none ] || die "Vous devez spécifier l'image à utiliser pour composer"
|
|
|
|
|
|
|
|
|
|
local PREVIOUS_DOCKER_MACHINE_NAME="$DOCKER_MACHINE_NAME"
|
|
|
|
|
if [ -n "$COMPOSER_MACHINE" -a "$DOCKER_MACHINE_NAME" != "$COMPOSER_MACHINE" ]; then
|
|
|
|
|
local -x DOCKER_TLS_VERIFY= DOCKER_HOST= DOCKER_CERT_PATH= DOCKER_MACHINE_NAME=
|
|
|
|
@ -1424,6 +1451,8 @@ function auto_composer() {
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
docker_composer "$@"
|
|
|
|
|
else
|
|
|
|
|
local_composer "$@"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1437,7 +1466,7 @@ fi
|
|
|
|
|
|
|
|
|
|
DEFAULT_PROFILE=devel
|
|
|
|
|
# pour le moment ne pas lancer composer dans un container par défaut
|
|
|
|
|
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/utils-icmycas-php-apache:d9
|
|
|
|
|
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/apache-php-myiccas-utils:d9
|
|
|
|
|
PROFILE=
|
|
|
|
|
DM_PROFILES=()
|
|
|
|
|
set_defaults dk
|
|
|
|
@ -1857,13 +1886,14 @@ NR == 1 { print; next }
|
|
|
|
|
"$DOCKER" container prune -f || die
|
|
|
|
|
"$DOCKER" image prune -f || die
|
|
|
|
|
;;
|
|
|
|
|
composer|c|ci|cu|cs)
|
|
|
|
|
composer|c|ci|cu|cr|cs)
|
|
|
|
|
build_set_options "$update_apps_mode" "$update_apps_origin" "$update_apps_branch"
|
|
|
|
|
[ -f .build.scripts.sh ] && source ./.build.scripts.sh
|
|
|
|
|
[ -f build.scripts.sh ] && source ./build.scripts.sh
|
|
|
|
|
args=()
|
|
|
|
|
if [ "$cmd" == ci ]; then args+=(install)
|
|
|
|
|
elif [ "$cmd" == cu ]; then args+=(update)
|
|
|
|
|
elif [ "$cmd" == cr ]; then args+=(rshell)
|
|
|
|
|
elif [ "$cmd" == cs ]; then args+=(shell)
|
|
|
|
|
fi
|
|
|
|
|
while [ $# -gt 0 -a "$1" != -- ]; do
|
|
|
|
@ -1873,6 +1903,6 @@ NR == 1 { print; next }
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
# transmettre directement à docker pour les autres commandes
|
|
|
|
|
exec "$DOCKER" "$@"
|
|
|
|
|
exec "$DOCKER" "$cmd" "$@"
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|