Skip to main content

Docker Tags

php-ci follows a small, predictable tagging convention so you always know exactly what you're pulling.

Convention

himanshuramavat/php-ci:<php-version>
himanshuramavat/php-ci:<php-version>-v<x.y.z>
himanshuramavat/php-ci:<php-version>-deploy
himanshuramavat/php-ci:<php-version>-deploy-v<x.y.z>
himanshuramavat/php-ci:latest
  • <php-version> — a PHP minor line: 8.1, 8.2, 8.3, 8.4.
  • <php>-v<x.y.z> — immutable release tag for reproducible pinning.
  • <php>-deploy — opt-in deploy variant (currently 8.4-deploy only) with rsync and openssh-client. See Deploy Variant.
  • <php>-deploy-v<x.y.z> — immutable deploy release tag.
  • latest — moving alias for the highest PHP version published (currently 8.4).

Base variant matrix

Image tagPHP versionStatus
himanshuramavat/php-ci:latest8.4 (alias)Moving alias
himanshuramavat/php-ci:8.48.4.xActive — newest
himanshuramavat/php-ci:8.38.3.xActive — recommended
himanshuramavat/php-ci:8.28.2.xSecurity fixes only
himanshuramavat/php-ci:8.18.1.xSecurity fixes only

Deploy variant

Opt-in image for pipelines that rsync or SSH artifacts to remote hosts. Same PHP stack as the base tag, plus deploy utilities. Not included in default tags.

Image tagPHP versionExtra toolsStatus
himanshuramavat/php-ci:8.4-deploy8.4.xrsync, openssh-clientActive

Immutable deploy pins: 8.4-deploy-v<x.y.z>. Full guide: Deploy Variant.

Registries

The image is published to two registries with identical tags. Pick whichever avoids rate limits for your runner.

# Docker Hub (primary)
docker pull himanshuramavat/php-ci:8.3

# GitHub Container Registry (mirror)
docker pull ghcr.io/himanshuramavat/php-ci:8.3

Choosing a tag

GoalUse
New project, sensible default:8.3
Longest support runway:8.4
Legacy compatibility check:8.1
Quick local experiment:latest
Deploy over SSH / rsync (PHP 8.4):8.4-deploy
Don't use :latest in CI

:latest moves to a new PHP line over time. Pin a concrete tag (:8.3) — or a digest — so your pipeline stays reproducible.

Rebuild cadence

All active tags are rebuilt periodically to pick up upstream PHP and base-OS security patches. The PHP minor line behind each tag does not change between rebuilds — only patch-level and OS updates are absorbed. Release notes are posted to the blog and the Changelog.