| title | Installation |
|---|---|
| description | Install Cbox PHP Base Images with Docker, Docker Compose, or Kubernetes |
| weight | 2 |
Cbox images are available from GitHub Container Registry (ghcr.io). No authentication required for pulling.
# Pull the recommended image
docker pull ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
# Verify installation
docker run --rm ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm php -vExpected output:
PHP 8.4.x (cli) (built: ...)
Copyright (c) The PHP Group
Zend Engine v4.4.x, Copyright (c) Zend Technologies
with Zend OPcache v8.4.x, Copyright (c), by Zend Technologies
# docker-compose.yml
services:
app:
image: ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
ports:
- "8000:80"
volumes:
- .:/var/www/htmldocker compose up -d
open http://localhost:8000PHP-FPM + Nginx in one container. Best for most applications.
# Standard tier (DEFAULT)
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
# Slim tier (APIs, microservices)
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm-slimInclude Xdebug and SPX profiler:
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm-devFor Kubernetes or when you need separate scaling:
# PHP-FPM only
ghcr.io/cboxdk/php-baseimages/php-fpm:8.4-bookworm
# PHP CLI only
ghcr.io/cboxdk/php-baseimages/php-cli:8.4-bookworm
# Nginx only
ghcr.io/cboxdk/php-baseimages/nginx:bookworm| Version | Status | Recommended |
|---|---|---|
| PHP 8.5 | Active | Yes |
| PHP 8.4 | Active | Yes |
| PHP 8.3 | Active | Yes |
| PHP 8.2 | EOL Dec 2025 | Upgrade recommended |
# PHP 8.5 (latest)
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.5-bookworm
# PHP 8.4
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
# PHP 8.3
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.3-bookworm
# PHP 8.2 (EOL)
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.2-bookwormUpdated weekly with security patches:
php-fpm-nginx:8.4-bookworm # Latest 8.4 (standard tier)
php-fpm-nginx:8.4-bookworm-slim # Latest 8.4 (slim tier)For reproducible builds:
php-fpm-nginx:8.4-bookworm-sha256:abc123...docker run -d \
--name myapp \
-p 8000:80 \
-v $(pwd):/var/www/html \
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm# docker-compose.yml
services:
app:
image: ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
ports:
- "8000:80"
volumes:
- .:/var/www/html
environment:
PHP_MEMORY_LIMIT: 256MFROM ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
# Add custom extensions
RUN apt-get update && apt-get install -y $PHPIZE_DEPS \
&& pecl install swoole \
&& docker-php-ext-enable swoole \
&& apt-get purge -y --auto-remove $PHPIZE_DEPS \
&& rm -rf /var/lib/apt/lists/*
# Copy application
COPY . /var/www/html# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: app
image: ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
ports:
- containerPort: 80
env:
- name: PHP_MEMORY_LIMIT
value: "512M"GitHub Actions:
# .github/workflows/deploy.yml
jobs:
build:
runs-on: ubuntu-latest # Use your CI provider's Linux runner
steps:
- uses: actions/checkout@v4
- name: Build image
run: |
docker build -t myapp:${{ github.sha }} .
- name: Push to registry
run: |
docker push myapp:${{ github.sha }}GitLab CI:
# .gitlab-ci.yml
build:
image: docker:latest
services:
- docker:dind
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA# PHP version
docker run --rm ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm php -v
# Installed extensions
docker run --rm ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm php -m
# Specific extension
docker run --rm ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm php -m | grep redis# Start container
docker run -d --name test ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
# Check processes
docker exec test ps aux
# Check health
docker exec test /usr/local/bin/healthcheck.sh
# Cleanup
docker rm -f test# Create test file
echo '<?php phpinfo();' > index.php
# Run container
docker run -d --name test -p 8000:80 -v $(pwd):/var/www/html/public \
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
# Test
curl http://localhost:8000
# Cleanup
docker rm -f test
rm index.php# Error: manifest unknown
docker pull ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
# Solution: Check image name spelling
# Correct: php-fpm-nginx (with hyphens)
# Wrong: php_fpm_nginx, phpfpmnginx# Error: permission denied
# Solution: Add user to docker group
sudo usermod -aG docker $USER
newgrp docker# Error: no matching manifest for linux/arm64
# Solution: Cbox supports both architectures
# Check your platform
docker info | grep Architecture
# Force platform if needed
docker pull --platform linux/amd64 ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm- 5-Minute Quickstart - Get a Laravel app running
- Choosing Your Image - Tiers, sizes, and when to use each
- Laravel Guide - Complete Laravel setup