This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This repository contains Docker base images for the Speedpuzzling.cz project. Images are automatically built via GitHub Actions and pushed to GitHub Container Registry (ghcr.io).
Single base image variant:
web-base-php85/- PHP 8.5 based on FrankenPHP (Caddy), includes Inkscape, librsvg2
Contains:
Dockerfile- Main image definitionphp.ini- PHP configuration overridesbin/docker-entrypoint.sh- Container entrypoint scriptbin/wait-for-it.sh- Utility for waiting on servicesCaddyfile- Caddy/FrankenPHP server configurationimagemagick-policy.xml- ImageMagick security policy
The entrypoint script constructs FrankenPHP config from environment variables:
- Workers go in the global
frankenphp {}block viaFRANKENPHP_CONFIG - File watching is supported for development via
FRANKENPHP_WATCH
Key env vars: FRANKENPHP_WORKER, FRANKENPHP_WORKER_NUM, FRANKENPHP_MAX_WAIT_TIME
docker build -t web-base-php85 ./web-base-php85GitHub Actions workflows in .github/workflows/ automatically build and push images on:
- Push to
mainbranch - Version tags (
v*.*.*)
Images are published to:
ghcr.io/myspeedpuzzling/web-base-php85
- FrankenPHP: Application server on port 8080, worker mode
- PHP Extensions: bcmath, intl, pcntl, zip, uuid, pdo_pgsql, opcache, apcu, gd, exif, redis, xdebug, excimer, xsl, imagick
- libheif: Custom build with AVIF support for image processing
- Node.js: LTS version included for frontend tooling