yieldstudio/php est un ensemble optimisĂ© d'images Docker pour exĂ©cuter des applications PHP en production. Tout est conçu autour de l'amĂ©lioration de l'expĂ©rience dĂ©veloppeur avec PHP et Docker. Finis les jours de configuration diffĂ©rente pour chaque environnement, et finis les jours oĂč vous essayez de comprendre pourquoi votre code fonctionne dans un environnement et pas dans un autre.
Ces images sont hautement optimisĂ©es pour exĂ©cuter des applications PHP modernes, peu importe oĂč vous souhaitez que votre application s'exĂ©cute.
Basé sur serversideup/php, ces images incluent des extensions PHP pré-configurées et des paramÚtres pour des performances et une sécurité améliorées. Optimisé pour Laravel et WordPress.
- â Images basĂ©es sur PHP officiel
- â Support multi-architecture (AMD64 & ARM64)
- â Validation automatique des versions PHP sur DockerHub
- â Support Debian (Bookworm, Trixie) et Alpine
- â Variations disponibles : CLI, FrankenPHP, Sail
- â Extensions PHP prĂ©-installĂ©es (intl, gd, bcmath, exif, soap, etc.)
- â Automations Laravel intĂ©grĂ©es
- â Support natif d'Octane et FrankenPHP
- â Health checks intĂ©grĂ©s
Utilisez simplement ce pattern de nom d'image dans vos projets :
ghcr.io/yieldstudio/php:{{version}}-{{variation-name}}Par exemple, pour PHP 8.3 avec FrankenPHP :
ghcr.io/yieldstudio/php:8.3-frankenphp| Variation | Description | Base OS |
|---|---|---|
cli |
PHP CLI de base avec extensions essentielles | Debian (Bookworm) |
frankenphp |
Serveur FrankenPHP avec support HTTP/3 | Debian (Trixie) |
sail |
Environnement de développement Laravel Sail | Debian (Trixie) |
- PHP 8.5
- PHP 8.4
- PHP 8.3
- PHP 8.2
Les images incluent des automations Laravel configurables via des variables d'environnement :
AUTORUN_ENABLED(default:false) - Active les automations LaravelAUTORUN_DEBUG(default:false) - Active les logs de débogage
AUTORUN_LARAVEL_STORAGE_RECREATE(default:true) - Recrée les dossiers de storageAUTORUN_LARAVEL_STORAGE_LINK(default:true) - Crée le lien symbolique de storage
AUTORUN_LARAVEL_OPTIMIZE(default:true) - Exécutephp artisan optimizeAUTORUN_LARAVEL_CONFIG_CACHE(default:true) - Cache la configurationAUTORUN_LARAVEL_ROUTE_CACHE(default:true) - Cache les routesAUTORUN_LARAVEL_VIEW_CACHE(default:true) - Cache les vuesAUTORUN_LARAVEL_EVENT_CACHE(default:true) - Cache les événements
AUTORUN_LARAVEL_MIGRATION(default:true) - Exécute les migrationsAUTORUN_LARAVEL_MIGRATION_DATABASE- Base(s) de données spécifique(s)AUTORUN_LARAVEL_MIGRATION_FORCE(default:true) - Force les migrationsAUTORUN_LARAVEL_MIGRATION_TIMEOUT(default:30) - Timeout de connexion DB
PHP_OPCACHE_ENABLE(default:1) - Active OPCachePHP_VARIABLES_ORDER(default:"GPCS") - Ordre des variables PHPPHP_MEMORY_LIMIT- Limite mémoire PHPPHP_UPLOAD_MAX_FILESIZE- Taille max d'upload
./scripts/dev.sh \
--variation cli \
--version 8.3 \
--os bookworm--variation <variation> # Variation PHP (cli, frankenphp, sail)
--version <version> # Version PHP (8.2, 8.3, 8.4, 8.5)
--os <os> # OS de base (bookworm, trixie, alpine)
--prefix <prefix> # Préfixe pour le tag Docker
--registry <registry> # Registry personnalisé
--platform <platform> # Plateforme (linux/amd64, linux/arm64)
--push # Push l'image vers le registryLe script scripts/get-php-versions.sh récupÚre les derniÚres versions PHP depuis php.net et valide leur disponibilité sur DockerHub :
./scripts/get-php-versions.sh [--skip-download] [--skip-dockerhub-validation]Fonctionnalités :
- â Validation automatique sur DockerHub
- â Fallback vers versions antĂ©rieures si indisponible
- â Annotations GitHub Actions pour warnings/erreurs
- â
Génération de
scripts/conf/php-versions.yml
Le script scripts/assemble-docker-tags.sh gÚre la logique avancée des tags Docker :
./scripts/assemble-docker-tags.sh \
--variation <variation> \
--os <os> \
--patch-version <version> \
[--stable-release] \
[--github-release-tag <tag>]Logique des tags :
- Tags patch :
8.3.1-cli-bookworm - Tags minor :
8.3-cli(si derniĂšre version patch) - Tags major :
8-cli(si derniĂšre version minor) - Tags
latest: version stable la plus récente - Support RC avec tags dédiés
Le script scripts/generate-matrix.sh génÚre la matrice de build GitHub Actions :
./scripts/generate-matrix.sh [path/to/php-versions.yml]GénÚre un JSON pour GitHub Actions avec toutes les combinaisons :
- Versions PHP à Variations à OS supportés
- Filtrage des versions exclues
- Tri par version (plus récentes en premier)
.
âââ scripts/ # Scripts de build et CI/CD
â âââ assemble-docker-tags.sh
â âââ dev.sh
â âââ generate-matrix.sh
â âââ get-php-versions.sh
â âââ conf/ # Configuration PHP versions
âââ src/
â âââ common/ # Fichiers communs Ă toutes les variations
â â âââ etc/ # Scripts entrypoint et configuration
â â âââ usr/ # Binaires personnalisĂ©s
â âââ variations/ # Dockerfiles par variation
â âââ cli/
â âââ frankenphp/
â âââ sail/
âââ .github/
âââ workflows/ # Workflows CI/CD
Nous accueillons les contributions ! Consultez notre guide de contribution pour commencer.
Si vous rencontrez un problÚme, veuillez créer une issue.
Améliorez ce projet en soumettant une demande de fonctionnalité.
- Documentation serversideup/php - Documentation complĂšte du projet parent
- GitHub - Code source et gestion du projet
- GitHub Packages - Registry des images
Ce projet est basé sur serversideup/php par Server Side Up.
Merci à toute l'équipe de Server Side Up pour leur excellent travail sur les images PHP Docker de base.
Ce projet est sous licence GPL-3.0-or-later.
Maintenu par YieldStudio | Basé sur serversideup/php