C (create) R (read) U (update) D (delete)
Ce starter kit vous permet de démarrer rapidement un projet PHP avec une base de données PostgreSQL et pgAdmin, le tout conteneurisé avec Docker.
- Docker & Docker Compose
- Pour Windows/Mac : Docker Desktop
- Vérifiez l'installation avec :
docker --version docker compose version
.
├── docker-compose.yml # Configuration des services Docker
├── Dockerfile # Configuration de l'image PHP
├── data/ # Dossier contenant les fichiers SQL
│ └── data.sql # Fichier SQL pour initialiser la base de données
└── php/ # Dossier contenant les fichiers PHP
└── index.php # Point d'entrée de l'application
Le projet inclut trois services Docker :
-
PHP (Apache) : PHP 8.3 avec Apache
- Accessible sur
http://localhost:8000
- Le contenu du dossier
php/
est synchronisé avec le container
- Accessible sur
-
PostgreSQL : Base de données PostgreSQL
- Port : 5432
- Base de données : project_name
- Utilisateur : test
- Mot de passe : test
- Root password : root
-
pgAdmin : Interface d'administration PostgreSQL
- Accessible sur
http://localhost:8082
- Email : admin@admin.com
- Mot de passe : admin
- Accessible sur
-
Clonez ce dépôt :
git clone [URL_DU_REPO] cd [NOM_DU_DOSSIER]
-
Si vous souhaitez initialiser la base de données, ajoutez vos requêtes SQL dans le fichier
data/data.sql
-
Construisez l'image PHP avec les extensions nécessaires :
docker compose build
-
Lancez les containers :
docker compose up -d
-
Accédez à votre application :
- Application PHP : http://localhost:8000
- pgAdmin : http://localhost:8080
-
Démarrer les containers :
docker compose up -d
-
Accédez à votre application comme d'habitude :
- Application PHP : http://localhost:8000
- pgAdmin : http://localhost:8080
-
Pour arrêter les containers :
docker compose down
Note : Si vous modifiez le fichier
data.sql
après la première utilisation et que vous souhaitez réinitialiser la base de données, vous devrez supprimer les volumes Docker. Voici la commande :docker compose down -v # Arrête les containers et supprime les volumes docker compose up -d # Redémarre les containers et réinitialise la base de données
- La base de données
projet
est automatiquement créée au démarrage des containers - Un fichier
data.sql
vide est fourni dans le dossierdata/
. Vous pouvez le remplacer par votre propre fichier SQL contenant vos tables et données. Ce fichier sera automatiquement exécuté lors de la première initialisation de la base de données - Cette fonctionnalité est configurée dans le
docker-compose.yml
grâce à la ligne :volumes: - './data:/docker-entrypoint-initdb.d'
- Pour initialiser votre base de données :
- Copiez vos requêtes SQL dans le fichier
data/data.sql
- Si les containers sont déjà en cours d'exécution, relancez-les avec :
docker compose down docker compose up -d
- Copiez vos requêtes SQL dans le fichier
- Les données sont persistantes entre les redémarrages des containers, donc le script
data.sql
ne sera exécuté qu'à la première initialisation
- Placez vos fichiers PHP dans le dossier
src/
- Les modifications sont automatiquement prises en compte grâce au montage du volume
- Pour les modifications de la base de données :
- Utilisez pgAdmin (http://localhost:8080)
- Ou modifiez directement le fichier
data/data.sql
# Démarrer les containers
docker compose up -d
# Arrêter les containers
docker compose down
- pgsql
- pdo
- pdo_pgsql
- Modifier les ports dans
docker-compose.yml
si nécessaire - Ajouter des extensions PHP dans le
Dockerfile
- Modifier les credentials de la base de données dans
docker-compose.yml