Distroless PHP images built with Bazel, using rules_distroless.
The YAML manifests pin Debian packages to a specific snapshot.debian.org timestamp for reproducibility. When snapshots expire or return 404s, you need to update the timestamps and regenerate the lock files.
Browse the available snapshots:
- Debian archive: https://snapshot.debian.org/archive/debian/
- Debian security: https://snapshot.debian.org/archive/debian-security/
Pick a recent timestamp (e.g. 20260210T022610Z).
Replace the snapshot URLs in all manifest files:
php/common.yamlphp/wkhtmltopdf.yamlphp/7.2/php.yamlphp/7.4/php.yamlphp/8.3/php.yamlphp/8.4/php.yamlnginx/bookworm.yaml
Each file has three Debian snapshot sources to update:
sources:
- channel: bookworm main contrib
url: https://snapshot.debian.org/archive/debian/<TIMESTAMP>
- channel: bookworm-security main
url: https://snapshot.debian.org/archive/debian-security/<TIMESTAMP>
- channel: bookworm-updates main
url: https://snapshot.debian.org/archive/debian/<TIMESTAMP>Run the lock target for each repository:
bazel run @php-common//:lock
bazel run @php-wkhtmltopdf//:lock
bazel run @php-7.2//:lock
bazel run @php-7.4//:lock
bazel run @php-8.3//:lock
bazel run @php-8.4//:lock
bazel run @php-8.5//:lock
bazel run @nginx-bookworm//:lockThis resolves packages from the new snapshots and writes updated .lock.json files.