Skip to content

5-Minute Quickstart

5-Minute Quickstart

Get a production-ready PHP environment running in under 5 minutes.

Really Quick Test (30 seconds)

Just want to test the image? Run these docker commands:

# Test PHP version and extensions
docker run --rm --entrypoint php ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm -v

# List all loaded extensions
docker run --rm --entrypoint php ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm -m

# See available tools
docker run --rm --entrypoint sh ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm -c "php -v && composer -V && node -v"

# Start a web server with current directory mounted
docker run --rm -p 8000:80 -v $(pwd):/var/www/html ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm

For a proper project setup, continue below.


Prerequisites

  • Docker 20.10+ (docker --version)
  • Docker Compose (docker compose version)

Step 1: Create Project

mkdir my-php-app && cd my-php-app
mkdir public

Step 2: Create Test File

cat > public/index.php << 'EOF'
<?php
echo "<h1>Cbox Works!</h1>";
echo "<p>PHP " . PHP_VERSION . " with " . count(get_loaded_extensions()) . " extensions</p>";
EOF

Step 3: Create docker-compose.yml

services:
  app:
    image: ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
    ports:
      - "8000:80"
    volumes:
      - .:/var/www/html

Step 4: Start

docker compose up

Step 5: Open Browser

Visit http://localhost:8000


What You Get

  • PHP 8.4 with 40+ extensions (Redis, ImageMagick, MongoDB, etc.)
  • Nginx with security headers
  • OPcache JIT enabled
  • Automatic health checks
  • Graceful shutdown handling

Quick Commands

docker compose up -d          # Start background
docker compose logs -f        # View logs
docker compose down           # Stop
docker compose exec app sh    # Shell access
curl localhost:8000/health    # Health check

Next Steps

Goal Guide
Laravel setup Laravel Guide
Add PHP extensions Extending Images
Production deployment Production Guide
All environment variables Environment Variables

Available Images

Cbox Base Images use Debian 12 (Bookworm) for maximum compatibility:

ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.5-bookworm
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.4-bookworm
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.3-bookworm
ghcr.io/cboxdk/php-baseimages/php-fpm-nginx:8.2-bookworm

Tag Formats

Tag Format Example Use Case
Rolling 8.4-bookworm Development, auto-updates
Pinned 8.4.7-bookworm Production, version lock
SHA 8.4-bookworm-abc123 Debugging, reproducibility
Rootless 8.4-bookworm-rootless Security-restricted environments

Troubleshooting

Port in use? Change 8000:80 to 8001:80

Permission errors? Cbox auto-fixes Laravel directories. Manual: docker compose exec app chown -R www-data:www-data storage

More help? See Common Issues