Start the Drupal development stack: nginx + PHP-FPM + database, running as Docker sibling containers.
/drupal-serve
/drupal-serve db=postgres
/drupal-serve port=8086
| Parameter |
Default |
Options |
db |
asks if not configured |
mariadb, postgres, sqlite
|
port |
auto-detect from 8085 |
any available port |
-
Checks for a Drupal project at
/workspace/drupal. Warns if not found (soft warning — stack can still start).
-
Checks for Docker socket — fails immediately if Docker is not available.
-
Selects database — reads from existing stack config, or asks if first run.
-
Detects port conflicts — starts from 8085 and increments until a free port is found.
-
Generates Docker compose config in
/workspace/.piclaw/stack/ using the project templates.
-
Starts the stack:
docker compose up -d
-
Waits for health checks — polls until the web container responds or times out (30 s).
-
Reports the URL —
http://localhost:<port>
| Container |
Image |
Role |
| nginx |
nginx:alpine |
Web server / reverse proxy |
| php-fpm |
Custom PHP 8.3 image |
PHP execution |
| db |
mariadb:11 / postgres:16
|
Database |
- Uses sibling container mode: the DrupalClaw workspace container (
drupalclaw) spawns the Drupal stack containers via the host Docker socket. They share a Docker network.
- The Drupal project at
/workspace/drupal is mounted into the PHP-FPM container at /var/www/html.
- SQLite mode skips the database container entirely.