Skip to content

🐳 Production-ready Docker images for PHP. Optimized for Laravel, WordPress, and more!

License

Notifications You must be signed in to change notification settings

YieldStudio/docker-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YieldStudio PHP Docker Images

Build Status License

Introduction

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.

Fonctionnalités

  • ✅ 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

Utilisation

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

Variations disponibles

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)

Versions PHP supportées

  • PHP 8.5
  • PHP 8.4
  • PHP 8.3
  • PHP 8.2

Configuration

Variables d'environnement Laravel

Les images incluent des automations Laravel configurables via des variables d'environnement :

Automations générales

  • AUTORUN_ENABLED (default: false) - Active les automations Laravel
  • AUTORUN_DEBUG (default: false) - Active les logs de dĂ©bogage

Storage

  • AUTORUN_LARAVEL_STORAGE_RECREATE (default: true) - RecrĂ©e les dossiers de storage
  • AUTORUN_LARAVEL_STORAGE_LINK (default: true) - CrĂ©e le lien symbolique de storage

Optimisations

  • AUTORUN_LARAVEL_OPTIMIZE (default: true) - ExĂ©cute php artisan optimize
  • AUTORUN_LARAVEL_CONFIG_CACHE (default: true) - Cache la configuration
  • AUTORUN_LARAVEL_ROUTE_CACHE (default: true) - Cache les routes
  • AUTORUN_LARAVEL_VIEW_CACHE (default: true) - Cache les vues
  • AUTORUN_LARAVEL_EVENT_CACHE (default: true) - Cache les Ă©vĂ©nements

Migrations

  • AUTORUN_LARAVEL_MIGRATION (default: true) - ExĂ©cute les migrations
  • AUTORUN_LARAVEL_MIGRATION_DATABASE - Base(s) de donnĂ©es spĂ©cifique(s)
  • AUTORUN_LARAVEL_MIGRATION_FORCE (default: true) - Force les migrations
  • AUTORUN_LARAVEL_MIGRATION_TIMEOUT (default: 30) - Timeout de connexion DB

Variables d'environnement PHP

  • PHP_OPCACHE_ENABLE (default: 1) - Active OPCache
  • PHP_VARIABLES_ORDER (default: "GPCS") - Ordre des variables PHP
  • PHP_MEMORY_LIMIT - Limite mĂ©moire PHP
  • PHP_UPLOAD_MAX_FILESIZE - Taille max d'upload

Développement local

Construire une image

./scripts/dev.sh \
  --variation cli \
  --version 8.3 \
  --os bookworm

Options disponibles

--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 registry

Scripts de build

Récupération des versions PHP

Le 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

Assemblage des tags Docker

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

Génération de la matrice CI/CD

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)

Structure du projet

.
├── 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

Contribution

Nous accueillons les contributions ! Consultez notre guide de contribution pour commencer.

Rapporter des bugs

Si vous rencontrez un problÚme, veuillez créer une issue.

Proposer des fonctionnalités

Améliorez ce projet en soumettant une demande de fonctionnalité.

Ressources

Crédits

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.

Licence

Ce projet est sous licence GPL-3.0-or-later.


Maintenu par YieldStudio | Basé sur serversideup/php

About

🐳 Production-ready Docker images for PHP. Optimized for Laravel, WordPress, and more!

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 37