Open Container Initiative
How Package Origin conforms with the Open Container Initiative's Distribution Specification.
The Open Container Initiative (OCI), an open source community for creating open standards around containers. As part of their work, the OCI publish a Distribution Specification.
Package Origin aims to support the OCI’s Distribution Specification as a pull-only container registry.
Package Origin Conforms
Package Origin v1.1.0+ conforms to the OCI Distribution Specification v1.0.1, with two test fixes1.
Conformance Results
View the latest conformance results.
Reproduce the Results
Follow these steps to reproduce the conformance results.
Set up Package Origin
The test can be run against the public https://pkg.miln.eu repository, or to set up a local instance of Package Origin:
Download Package Origin
Download the sample container: oci-distribution-conformance.tar
Launch Package Origin, passing in the location of the sample container:
./packageorigin -packages directory/path/containing/sample
Package Origin is now running and ready for the conformance test.
Run the Test
Download the OCI Distribution Specification v1.0.1 source:
git clone https://github.com/opencontainers/distribution-spec -b v1.0.1
Build the conformance test binary (requires Go):
cd distribution-spec/ make conformance-binary
Fix the conformance test for pull-only registries:
Set various environment variables:
# Registry details export OCI_ROOT_URL="https://pkg.miln.eu" ##export OCI_ROOT_URL="http://localhost:8080" export OCI_NAMESPACE="packageorigin/oci-distribution-conformance" # Which workflows to run export OCI_TEST_PULL=1 export OCI_TEST_PUSH=0 export OCI_TEST_CONTENT_DISCOVERY=1 export OCI_TEST_CONTENT_MANAGEMENT=0 # Set to prevent automatic setup export OCI_MANIFEST_DIGEST="sha256:13a046c9fb6d8b15442098af72348d7913c06c2e06e642982ddaef7f11b20b50" # application/vnd.oci.image.manifest.v1+json export OCI_TAG_NAME="1.0.0" export OCI_BLOB_DIGEST="sha256:2f887fc5db6631205e245fa37db5df9ba66b1ef8caa19d8be7ee79ca3a972959" export OCI_TAG_LIST="1.0.0,1.0.1,1.1.0+oci,2.0.0-preview.1,latest" # Extra settings export OCI_HIDE_SKIPPED_WORKFLOWS=1 export OCI_DEBUG=0 export OCI_DELETE_MANIFEST_BEFORE_BLOBS=0 # Silence tooling export ACK_GINKGO_DEPRECATIONS=1.16.4
Run the conformance tests:
output/conformance.test
Detailed test results can be found in the report.html
file.