Skip to content

Conversation

@KingPin
Copy link
Owner

@KingPin KingPin commented Oct 22, 2025

Summary

This PR migrates v2 Debian-based images from Debian Bookworm to Debian Trixie, aligning with upstream PHP official images while maintaining complete backward compatibility through tag aliasing.

What Changed

v2 Images (with -v2 suffix)

  • ✅ Now built on Debian Trixie base
  • :bookworm tags continue to work as aliases (point to same Trixie image)
  • :bullseye tags also aliased for legacy compatibility
  • ✅ System libraries updated for Trixie (including time64 t64 packages)

v1 Images (without -v2 suffix)

  • ℹ️ No change - remain on Debian Bookworm

Alpine Images

  • ℹ️ No change - unaffected by this migration

Why This Change?

  1. Upstream Alignment: PHP official images moved to Trixie
  2. Newer Packages: Access to latest system libraries and security updates
  3. Future-Proofing: Trixie will become next Debian stable
  4. Zero Disruption: Existing :bookworm tags work transparently

Backward Compatibility

Users pulling :bookworm-v2 tags will automatically receive Trixie-built images with identical behavior. The same digest is served for:

  • 8.3-fpm-trixie-v2 (new explicit tag)
  • 8.3-fpm-bookworm-v2 (compatibility alias)
  • 8.3-fpm-bullseye-v2 (legacy alias)

No action required for users currently using :bookworm-v2 tags.

Technical Changes

Dockerfile Updates

  • Updated Dockerfile.v2 to handle both Trixie and Bookworm BASEOS values
  • Library packages updated for Trixie time64 transition (t64 suffix):
    • libpng16-16t64, libmagickwand-6.q16-7t64, libvips42t64
    • libavif16t64, libmemcached11t64, libsnmp40t64

CI/Workflow Updates

  • docker-ci.yml: v2 matrix now builds on trixie instead of bookworm
  • docker-image.v2.yml: matrix updated to use trixie base
  • Added docker buildx imagetools create step to publish :bookworm compatibility tags
  • v1 workflows unchanged (remain on Bookworm)

Documentation

  • README updated with Trixie migration notice
  • Comprehensive migration guide added to docs/migration.md
  • New CHANGELOG.md with detailed migration notes
  • Tag mapping, library comparison table, testing checklist, rollback plan, and FAQ included

Testing Plan

Pre-Merge (Canary)

  • CI builds complete successfully on all architectures (amd64, arm64, arm/v7)
  • Smoke tests pass (PHP version, extensions, s6-overlay, FPM)
  • Trivy security scans pass
  • Image size comparison (expect <5% difference)
  • Manual test with sample PHP app

Post-Merge

  • Monitor issues for 7-14 days
  • Watch Trivy alerts for new vulnerabilities
  • Track image pull metrics

Rollback Plan

If issues arise:

  1. Revert this PR and redeploy Bookworm-built images
  2. Users can explicitly use v1 images (still on Bookworm)
  3. Users can pin to specific digest if needed

Related Documentation

Checklist

  • Code changes tested locally
  • Documentation updated
  • CHANGELOG entry added
  • Migration guide written
  • Backward compatibility maintained
  • CI passes (pending PR build)
  • Manual testing completed (post-CI)

Review Focus Areas:

  • Tag aliasing logic in CI workflows
  • Library package names for Trixie (especially t64 suffixes)
  • Documentation clarity and completeness

KingPin added 7 commits October 21, 2025 20:32
…ompatible tags

- Update Dockerfile.v2 to use Debian trixie as base OS
- Update library packages for trixie (including t64 time64 transition libs)
- Support both trixie and bookworm BASEOS values for smooth transition
- Update docker-ci.yml and docker-image.v2.yml matrices to build v2 on trixie
- v1 images remain on bookworm (no change)
- Add automatic bookworm tag aliasing for v2 trixie-built images
- Also add bullseye compatibility tags for maximum backward compatibility

This provides users pulling :bookworm tags with the latest trixie-built
images while maintaining tag continuity. The same digest is served for
both :trixie and :bookworm tags on v2 images.
- Update README with Trixie migration notice and base OS clarification
- Add detailed migration guide section in docs/migration.md
- Create CHANGELOG.md with unreleased Trixie migration entry
- Document tag mapping (trixie/bookworm/bullseye compatibility)
- Add library version comparison table (t64 time64 updates)
- Include testing checklist, rollback plan, and FAQ
- Clarify v1 vs v2 base OS differences
Remove the static CHANGELOG.md to avoid duplication; rely on git history, release notes, and existing docs for change tracking.
…agickwand, libtidy, libzip, libavif, libicu)
@KingPin KingPin merged commit c3cbb26 into main Oct 22, 2025
28 checks passed
@KingPin KingPin deleted the migrate-v2-to-trixie branch October 22, 2025 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants