Docker images for PHP 8.4 FPM used in the EngineGP project.
| Tag | Description |
|---|---|
ghcr.io/azmatel/enginegp-php/enginegp-php:latest |
Production (alias for 8.4) |
ghcr.io/azmatel/enginegp-php/enginegp-php:8.4 |
Production |
pdo_mysql,mysqli— MySQL database supportgd— image processing (JPEG, WebP, FreeType)imagick— ImageMagickzip,curl,gmp,bz2,xml,mbstring,exif,pcntlmemcached— Memcached caching
services:
php:
image: ghcr.io/azmatel/enginegp-php/enginegp-php:latest
volumes:
- ./app:/var/www/enginegp
ports:
- "9000:9000"After 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/enginegp-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:docker build -t enginegp-php:8.4 -t enginegp-php:latest ./productionThe image is built and published via GitHub Actions, triggered manually (workflow_dispatch).
├── production/
│ └── Dockerfile # Production image
└── .github/
└── workflows/
└── docker.yml # Automated build