Docker images for PHP 8.4 FPM used in the EngineGP project.
| Tag | Description |
|---|---|
ghcr.io/azmatel/enginegp-php/php:8.4 |
Production |
ghcr.io/azmatel/enginegp-php/php:8.4-dev |
Development (with Xdebug) |
pdo_mysql,mysqli— MySQL database supportgd— image processing (JPEG, WebP, FreeType)imagick— ImageMagickzip,curl,gmp,bz2,xml,mbstring,exifmemcached— Memcached cachingxdebug— only in8.4-dev
services:
php:
image: ghcr.io/azmatel/enginegp-php/php:8.4
volumes:
- ./app:/var/www/enginegp
ports:
- "9000:9000"services:
php:
image: ghcr.io/azmatel/enginegp-php/php:8.4-dev
volumes:
- ./app:/var/www/enginegp
ports:
- "9000:9000"
environment:
XDEBUG_MODE: debug
XDEBUG_CONFIG: client_host=host.docker.internalAfter starting the container, install project dependencies:
# Install all dependencies
docker compose exec php composer install
# Install without dev dependencies (production)
docker compose exec php composer install --no-dev --optimize-autoloader
# Add a new package
docker compose exec php composer require vendor/packageservices:
php:
image: ghcr.io/azmatel/enginegp-php/php:8.4
volumes:
- ./app:/var/www/enginegp
working_dir: /var/www/enginegp
depends_on:
- mysql
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: enginegp
volumes:
- mysql_data:/var/lib/mysql
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./app:/var/www/enginegp
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
volumes:
mysql_data:# Production
docker build -t enginegp-php:8.4 ./production
# Development
docker build -t enginegp-php:8.4-dev ./developmentOn push to the main branch, both images are automatically built and published via GitHub Actions.
├── production/
│ └── Dockerfile # Without Xdebug
├── development/
│ └── Dockerfile # With Xdebug
└── .github/
└── workflows/
└── docker.yml # Automated build