Vinci

Declarative and Reproducible Container Images

  • Declarative: An image built with vinci is not 'run', it's assembled using the layer specs.
  • Reproducible: All possible steps are designed to always return exactly the same layers, given the same inputs (for the mathematically inclined: this is a pure function).
Quickstart

Declarative and Reproducible Image Management

ready for your Cloud Native environments

Reproducibility

The output of the image assembly process is a pure function of its input. Environmental influences such as current time are eliminated. Besides the obvious security implications, this also allows building images in each CI run and delivering them only when actually changed.

Read more...

Built for CI / CD

TBD

Read more...

Quickstart

  1. Run a local image registry:
    docker run -d --name local-registry -p 5000:5000 registry
  2. Fetch vinci from Releases and put it into the $PATH.
  3. Put the following into quickstart.yaml:
    spec-version: v1

    image: localhost:5000/vinci/quickstart

    config:
      entrypoint:
      - /bin/cat
      - /message

    layers:
    - importOCI: alpine:edge@sha256:56e8a54633573bc40a003884a01e60fb31d070d05e220d244e88ca1c4b5815fa
    - file:
        path: /message
        mode: 0444
        contents: |
          Hello, World!
  4. Assemble and run it:
    docker run -i --rm $(vinci build quickstart.yaml)
That's it!

Contribute

All content is licensed under the Apache 2.0 licence. We welcome contributions in our repository on gitlab