support lancement dans container
This commit is contained in:
parent
a03de2a099
commit
b42f558e81
|
@ -15,17 +15,47 @@ LAUNCHERPATH=.launcher.php
|
||||||
# Chemin relatif des scripts PHP wrappés
|
# Chemin relatif des scripts PHP wrappés
|
||||||
WRAPPEDPATH=
|
WRAPPEDPATH=
|
||||||
|
|
||||||
|
# Nom du service dans docker-compose.yml
|
||||||
|
COMPOSE_SERVICE=web
|
||||||
|
|
||||||
|
# Montages dans docker-compose.yml
|
||||||
|
# les répertoires relatifs le sont par rapport au répertoire du projet
|
||||||
|
COMPOSE_MOUNTS=(
|
||||||
|
devel:/data/php74-template
|
||||||
|
.:/var/www/app
|
||||||
|
)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
case "${RUNPHP_MODE:-auto}" in
|
||||||
|
auto)
|
||||||
|
RUNPHP_MODE=host
|
||||||
|
if [ -f /.dockerenv ]; then
|
||||||
|
RUNPHP_MODE=docker
|
||||||
|
elif [ -f /proc/1/cgroup ]; then
|
||||||
|
grep -q ':/docker/' /proc/1/cgroup && RUNPHP_MODE=docker
|
||||||
|
elif [ -f /proc/self/mountinfo ]; then
|
||||||
|
grep -q ' /docker/' /proc/self/mountinfo && RUNPHP_MODE=docker
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
docker) RUNPHP_MODE=docker;;
|
||||||
|
host) RUNPHP_MODE=host;;
|
||||||
|
direct) RUNPHP_MODE=direct;;
|
||||||
|
*) RUNPHP_MODE=host;;
|
||||||
|
esac
|
||||||
|
|
||||||
MYDIR="$(dirname -- "$0")"
|
MYDIR="$(dirname -- "$0")"
|
||||||
MYNAME="$(basename -- "$0")"
|
MYNAME="$(basename -- "$0")"
|
||||||
|
|
||||||
if [ ! -L "$0" ]; then
|
if [ ! -L "$0" ]; then
|
||||||
echo "\
|
echo "\
|
||||||
$0
|
$0
|
||||||
Ce script doit être lancé en tant que lien symbolique avec un nom de la forme
|
Ce script doit être lancé en tant que lien symbolique avec un nom de la forme
|
||||||
'monscript.php' et lance le script PHP du même nom situé dans le même répertoire
|
'monscript.php' et lance le script PHP du même nom situé dans le même répertoire
|
||||||
avec l'utilisateur www-data
|
avec l'utilisateur www-data"
|
||||||
|
|
||||||
|
if [ "$RUNPHP_MODE" == host ]; then
|
||||||
|
echo "\
|
||||||
|
----------------------------------------
|
||||||
Vérification des liens..."
|
Vérification des liens..."
|
||||||
cd "$MYDIR"
|
cd "$MYDIR"
|
||||||
for i in *.php*; do
|
for i in *.php*; do
|
||||||
|
@ -42,12 +72,49 @@ Vérification des liens..."
|
||||||
ln -s "$dest" "$link" || exit 1
|
ln -s "$dest" "$link" || exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
MYTRUESELF="$(readlink -f "$0")"
|
MYTRUESELF="$(readlink -f "$0")"
|
||||||
MYTRUEDIR="$(dirname -- "$MYTRUESELF")"
|
MYTRUEDIR="$(dirname -- "$MYTRUESELF")"
|
||||||
PROJDIR="$(cd "$MYTRUEDIR${PROJPATH:+/$PROJPATH}"; pwd)"
|
PROJDIR="$(cd "$MYTRUEDIR${PROJPATH:+/$PROJPATH}"; pwd)"
|
||||||
|
|
||||||
|
if [ "$RUNPHP_MODE" == host ]; then
|
||||||
|
cwd="$(pwd)"
|
||||||
|
found=
|
||||||
|
workdir=
|
||||||
|
for mounts in "${COMPOSE_MOUNTS[@]}"; do
|
||||||
|
hdir="${mounts%%:*}"
|
||||||
|
ddir="${mounts#*:}"
|
||||||
|
hdir="$(cd "$PROJDIR/$hdir"; pwd)"
|
||||||
|
if [ "$cwd" == "$hdir" ]; then
|
||||||
|
found=1
|
||||||
|
workdir="$ddir"
|
||||||
|
break
|
||||||
|
elif [ "${cwd#$hdir/}" != "$cwd" ]; then
|
||||||
|
found=1
|
||||||
|
workdir="$ddir/${cwd#$hdir/}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -z "$found" ]; then
|
||||||
|
echo "Impossible de mapper le répertoire courant avec les montages du container"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
args=(
|
||||||
|
docker compose run
|
||||||
|
${RUNPHP_BUILD:+--build}
|
||||||
|
--rm
|
||||||
|
--workdir "$workdir"
|
||||||
|
"$COMPOSE_SERVICE"
|
||||||
|
exec "$MYNAME"
|
||||||
|
"$@"
|
||||||
|
)
|
||||||
|
cd "$PROJDIR"
|
||||||
|
exec "${args[@]}"
|
||||||
|
fi
|
||||||
|
|
||||||
launcher="$MYTRUEDIR/$LAUNCHERPATH"
|
launcher="$MYTRUEDIR/$LAUNCHERPATH"
|
||||||
class="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.phpc"
|
class="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.phpc"
|
||||||
script="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.php"
|
script="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.php"
|
||||||
|
|
Loading…
Reference in New Issue