| name | symfony:runner-selection |
| description | Select and configure the appropriate command runner based on Docker Compose standard, Symfony Docker (FrankenPHP), or host environment |
Runner Selection
This skill helps you select the appropriate command runner based on your environment setup.
Environment Detection
The plugin automatically detects your environment:
Symfony Docker (FrankenPHP/Caddy)
- Detected via
compose.yamlwith frankenphp/caddy references - Or presence of
frankenphp/directory orCaddyfile
- Detected via
Docker Compose Standard
- Detected via
docker-compose.ymlorcompose.yaml - Service name auto-detected (
php,app, or first service)
- Detected via
Host Environment
- Fallback when no Docker configuration found
- Uses local PHP installation
Command Mapping
Symfony Docker
# PHP execution
docker compose exec php php script.php
# Symfony Console
docker compose exec php bin/console cache:clear
# Composer
docker compose exec php composer require package
# Tests
docker compose exec php ./vendor/bin/phpunit
docker compose exec php ./vendor/bin/pest
Docker Compose Standard
# PHP execution (service name may vary: php, app, etc.)
docker compose exec app php script.php
# Symfony Console
docker compose exec app bin/console cache:clear
# Composer
docker compose exec app composer require package
# Tests
docker compose exec app ./vendor/bin/phpunit
Host Environment
# PHP execution
php script.php
# Symfony Console
php bin/console cache:clear
# Composer
composer require package
# Tests
./vendor/bin/phpunit
./vendor/bin/pest
Switching Runners
If Docker is configured but not running, you have two options:
Option 1: Start Docker
# Symfony Docker
docker compose up -d --wait
# Docker Compose standard
docker compose up -d
Option 2: Use Host Tools
Continue with host PHP/Composer if available.
Best Practices
- Consistency: Use the same runner throughout a session
- Docker preference: Prefer Docker for reproducibility
- Host for speed: Use host tools for quick iterations if Docker is slow
- CI/CD: Always use Docker in CI for consistency
Troubleshooting
Docker not found
# Check Docker installation
docker --version
docker compose version
Service not running
# Check running containers
docker compose ps
# View logs
docker compose logs -f
Permission issues
# Fix file ownership (Symfony Docker)
docker compose exec php chown -R $(id -u):$(id -g) .