Initialisation du projet.
This commit is contained in:
Executable
+95
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# ./scripts/build-docker-image.sh --debug --build
|
||||
|
||||
# Charge le fichier .env
|
||||
rootDir=$(dirname "$BASH_SOURCE")
|
||||
source $rootDir/../.env
|
||||
|
||||
isApache=false
|
||||
isFrankenphp=false
|
||||
phpVersion=""
|
||||
serverVersion=""
|
||||
serverName=""
|
||||
withDebug=false
|
||||
withBuild=false
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--debug)
|
||||
withDebug=true
|
||||
;;
|
||||
--build)
|
||||
withBuild=true
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Vérifie que le repository de l'image est définie
|
||||
if [[ "$SERVER_IMAGE_REPOSITORY" == "" ]]; then
|
||||
echo "Le repository de l'image est inconnu. Veuillez définir la variable d'environnement SERVER_IMAGE_REPOSITORY."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Détermine si l'image du serveur est Apache ou FrankenPHP
|
||||
if [[ "$SERVER_PHP_IMAGE" == *"apache"* ]]; then
|
||||
isApache=true
|
||||
phpVersion="${SERVER_PHP_IMAGE#*:}"
|
||||
phpVersion="${phpVersion%%-*}"
|
||||
serverVersion="2.4"
|
||||
serverName="Apache"
|
||||
fi
|
||||
|
||||
if [[ "$SERVER_PHP_IMAGE" == *"frankenphp"* ]]; then
|
||||
isFrankenphp=true
|
||||
phpVersion="${SERVER_PHP_IMAGE##*-php}"
|
||||
serverVersion="${SERVER_PHP_IMAGE#*:}"
|
||||
serverVersion="${serverVersion%%-*}"
|
||||
serverName="FrankenPHP"
|
||||
fi
|
||||
|
||||
# Vérifie le numéro de la version PHP
|
||||
if [[ ! "$phpVersion" =~ ^[0-9]+(\.[0-9]+)*$ ]]; then
|
||||
echo "Version de PHP incorrecte : $phpVersion"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Vérifie le numéro de la version du serveur
|
||||
if [[ ! "$serverVersion" =~ ^[0-9]+(\.[0-9]+)*$ ]]; then
|
||||
echo "Version du serveur incorrecte : $serverVersion"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Détermine le titre de l'image
|
||||
serverImageTitleLabel="Image PHP :phpVersion avec :serverName :serverVersion"
|
||||
serverImageTitleLabel=${serverImageTitleLabel/:phpVersion/${phpVersion}}
|
||||
serverImageTitleLabel=${serverImageTitleLabel/:serverName/${serverName}}
|
||||
serverImageTitleLabel=${serverImageTitleLabel/:serverVersion/${serverVersion}}
|
||||
|
||||
# Détermine la description de l'image
|
||||
serverImageDescriptionLabel="Installation d'un serveur :serverName avec la version :phpVersion de PHP. Inclus dans l'image : Composer, Node, NPM, MariaDB, Memchached, Redis et PIE (PHP Installer for Extensions)."
|
||||
serverImageDescriptionLabel=${serverImageDescriptionLabel/:phpVersion/${phpVersion}}
|
||||
serverImageDescriptionLabel=${serverImageDescriptionLabel/:serverName/${serverName}}
|
||||
|
||||
# Détermine le tag de l'image
|
||||
dockerImageTag="${SERVER_IMAGE_REPOSITORY}:${phpVersion}-${serverName,,}-${serverVersion}"
|
||||
|
||||
buildCommand="docker build \
|
||||
-f Dockerfile \
|
||||
-t ${dockerImageTag} \
|
||||
--build-arg SERVER_PHP_IMAGE=${SERVER_PHP_IMAGE} \
|
||||
--build-arg SERVER_IMAGE_TITLE_LABEL=\"${serverImageTitleLabel}\" \
|
||||
--build-arg SERVER_IMAGE_DESCRIPTION_LABEL=\"${serverImageDescriptionLabel}\" \
|
||||
--build-arg WITH_MEMCACHED=true \
|
||||
--build-arg WITH_REDIS=true \
|
||||
.
|
||||
"
|
||||
|
||||
if [[ "$withDebug" == "true" ]]; then
|
||||
echo $buildCommand
|
||||
fi
|
||||
|
||||
if [[ "$withBuild" == "true" ]]; then
|
||||
eval "$buildCommand"
|
||||
echo "Build de l'image ${phpVersion}-${serverName,,}-${serverVersion} terminé."
|
||||
fi
|
||||
Reference in New Issue
Block a user