Skip to content

ci(image-compliance): smoke tests, hadolint, Trivy, date tags#3

Merged
Headgent merged 1 commit into
developfrom
fix/ci-image-compliance
Jun 14, 2026
Merged

ci(image-compliance): smoke tests, hadolint, Trivy, date tags#3
Headgent merged 1 commit into
developfrom
fix/ci-image-compliance

Conversation

@Headgent

Copy link
Copy Markdown
Contributor

Bringt das phpfpm-Image-Repo auf denselben Compliance-Stand wie phpcli (P2-phpfpm F0–F6).

Was sich ändert

  • Smoke-Tests (support/makefiles/test.mk): bauen per-arch Test-Images und verifizieren, dass php-fpm wirklich bootet & healthy ist, alle Extensions laden, OPcache+JIT aktiv sind, und das nginx-vhost-Template zu einer gültigen Config rendert (nginx -t).
  • Push-Guard: Smoke-Tests laufen vor den Push-Steps; gepusht wird nur außerhalb von pull_request-Events. PRs validieren also ohne zu publizieren.
  • hadolint-Job + .hadolint.yaml (DL3018, DL4006 — beide bewusste Base-Image-Entscheidungen). Ein || true in src/php/Dockerfile, das die gesamte Build-RUN-Stage maskierte, ist entfernt.
  • entrypoint.sh: php-fpm-Master und Worker laufen als appuser (stdio-Pipes einmalig als root chownen, dann droppen) — kein root-Dienst, dev-Bind-Mount-UID-Remap bleibt erhalten.
  • Trivy-Report-Job (continue-on-error) schreibt eine Vuln-Summary in den Run.
  • Immutable Datums-Tags (:8.x-YYYYMMDD, :1.28-YYYYMMDD) neben den moving Tags.
  • README: Moving- vs. Immutable-Tag-Empfehlung; Test-Targets dokumentiert.

Verifikation lokal (arm64)

  • hadolint Exit 0 für beide Dockerfiles (mit .hadolint.yaml)
  • make test-all grün (FPM bootet als appuser, alle Extensions, OPcache+JIT)
  • make nginx-test grün

Dieser PR-Run beweist erstmals real, dass die Tests laufen, der Push korrekt übersprungen wird und hadolint grün ist.

Bring the phpfpm image repo to the same compliance bar as phpcli:

- Smoke tests (support/makefiles/test.mk): build per-arch test images and
  verify php-fpm actually boots & is healthy, all extensions load, OPcache+JIT
  are active, and the nginx vhost renders to a valid config (nginx -t).
- Push guard: run the smoke tests before the push steps and skip pushing on
  pull_request events, so PRs validate without publishing.
- hadolint job + .hadolint.yaml (DL3018, DL4006 — both deliberate base-image
  decisions). Removed a `|| true` in src/php/Dockerfile that masked the entire
  build RUN stage.
- entrypoint.sh: run the php-fpm master and workers as appuser (chown stdio
  pipes once as root, then drop) — no root service, dev bind-mount UID remap
  preserved.
- Trivy report job (continue-on-error) writing a vuln summary to the run.
- Immutable date tags (:8.x-YYYYMMDD, :1.28-YYYYMMDD) alongside the moving tags.
- README: moving vs. immutable tag guidance; test targets documented.
@Headgent Headgent merged commit 4b29837 into develop Jun 14, 2026
12 of 14 checks passed
@Headgent Headgent deleted the fix/ci-image-compliance branch June 14, 2026 12:03
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.

1 participant