Cette image Docker personnalisée permet de créer un projet Sulu en utilisant Composer. Elle inclut toutes les extensions PHP nécessaires, comme GD et intl, pour éviter les erreurs courantes lors de l'installation. De plus, elle s'assure que les fichiers créés appartiennent à l'utilisateur et au groupe actuels de l'hôte.
Le but de cette image est de simplifier la création d'un projet Sulu en automatisant le processus et en évitant les erreurs de dépendances. Cette image garantit également que les fichiers du projet appartiennent correctement à l'utilisateur de l'hôte, ce qui évite les problèmes de permissions.
Pour créer un nouveau projet Sulu en utilisant cette image Docker, exécutez la commande suivante :
docker run -it --rm -v $(pwd):/app -e UID=$(id -u) -e GID=$(id -g) duffman033/sulu-create-project
Cette commande :
- Lance un conteneur en mode interactif (
-it
). - Supprime le conteneur après son exécution (
--rm
). - Monte le répertoire courant de l'hôte dans
/app
du conteneur (-v $(pwd):/app
). - Passe les UID et GID actuels en tant que variables d'environnement (
-e UID=$(id -u) -e GID=$(id -g)
). - Utilise l'image Docker
duffman033/sulu-create-project
pour créer le projet Sulu.
Si vous souhaitez spécifier un nom de projet différent, ajoutez simplement le nom à la fin de la commande :
docker run -it --rm -v $(pwd):/app -e UID=$(id -u) -e GID=$(id -g) duffman033/sulu-create-project mon-nouveau-projet
Le Dockerfile de cette image inclut les étapes suivantes :
- Utilisation de l'image officielle
php:8.0-cli
comme base. - Installation des extensions PHP nécessaires (GD, intl, etc.).
- Installation de Composer.
- Augmentation de la limite de mémoire PHP.
- Définition d'un script d'entrée pour créer le projet Sulu et ajuster les permissions des fichiers.
Le script entrypoint.sh
exécute la commande composer create-project
et ajuste les permissions des fichiers créés :
#!/bin/sh
# Vérifier si le nom du projet est passé en argument
PROJECT_NAME=${1:-my-sulu-project}
# Créer le projet Sulu
composer create-project sulu/skeleton $PROJECT_NAME
# Changer les permissions du projet créé pour l'utilisateur actuel
chown -R $UID:$GID $PROJECT_NAME