Verify our images
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
Mildport images are private. You need a granted GitHub account (see Image access) before any of the commands below can see the registry or the attestations. That is by design, not a missing publish.
Every promoted digest carries:
- a software bill of materials in SPDX and CycloneDX, attached to the GitHub release for that version;
- a cosign attestation of those SBOMs, stored next to the image.
Replace the tag with the version you actually run. Pin a digest in production;
latest is a moving pointer.
Online
Section titled “Online”SBOM attestation (cosign). The identity is the Images workflow on this repository. You must be logged in to GHCR first.
docker login ghcr.iocosign verify-attestation \ --type spdxjson \ --certificate-identity-regexp '^https://github.com/capitality-io/mildport/.github/workflows/images.yml@refs/' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ ghcr.io/capitality-io/mildport-aio:<tag>Use --type cyclonedx for the other SBOM. The same commands work for
mildport, mildport-embed, and the decode sidecar images.
When a GitHub provenance attestation is present on the digest, this is the second check:
gh attestation verify oci://ghcr.io/capitality-io/mildport-aio:<tag> \ --signer-workflow capitality-io/mildport/.github/workflows/images.yml \ -R capitality-io/mildportIf that command reports no attestation, the cosign path above is the one that applies.
Offline (air-gap)
Section titled “Offline (air-gap)”On a connected machine, download the SBOM files from the GitHub release for that version and copy them in with the image. Those files are the same documents CI attested.
If you also downloaded a GitHub attestation bundle while you still had network:
gh attestation download oci://ghcr.io/capitality-io/mildport-aio:<tag> \ -R capitality-io/mildportgh attestation trusted-root > trusted_root.jsonlInside the gap, against the image you mirrored:
gh attestation verify oci://registry.internal.example/mildport-aio:<tag> \ --bundle sha256:<digest>.jsonl \ --custom-trusted-root trusted_root.jsonl \ --signer-workflow capitality-io/mildport/.github/workflows/images.yml \ -R capitality-io/mildportMatching the release SBOM checksums to what cosign verify-attestation shows
(when you still have registry referrers) is the belt-and-braces check.
Signatures and SBOMs that live as registry referrers survive an oras backup /
oras restore of the image. docker save drops them — if you only have a
tar from docker save, use the GitHub release assets.
What a green check means
Section titled “What a green check means”The digest you pulled is the digest that workflow built, on that repository, with that SBOM. It does not mean the image is free of vulnerabilities. It means the bits were not swapped after the gated build.