GithubHelp home page GithubHelp logo

image's Introduction

GoDoc Build Status

image is a set of Go libraries aimed at working in various way with containers' images and container image registries.

The containers/image library allows application to pull and push images from container image registries, like the upstream docker registry. It also implements "simple image signing".

The containers/image library also allows you to inspect a repository on a container registry without pulling down the image. This means it fetches the repository's manifest and it is able to show you a docker inspect-like json output about a whole repository or a tag. This library, in contrast to docker inspect, helps you gather useful information about a repository or a tag without requiring you to run docker pull.

The containers/image library also allows you to translate from one image format to another, for example docker container images to OCI images. It also allows you to copy container images between various registries, possibly converting them as necessary, and to sign and verify images.

Command-line usage

The containers/image project is only a library with no user interface; you can either incorporate it into your Go programs, or use the skopeo tool:

The skopeo tool uses the containers/image library and takes advantage of many of its features, e.g. skopeo copy exposes the containers/image/copy.Image functionality.

Dependencies

This library does not ship a committed version of its dependencies in a vendor subdirectory. This is so you can make well-informed decisions about which libraries you should use with this package in your own projects, and because types defined in the vendor directory would be impossible to use from your projects.

What this project tests against dependencies-wise is located in vendor.conf.

Building

If you want to see what the library can do, or an example of how it is called, consider starting with the skopeo tool instead.

To integrate this library into your project, put it into $GOPATH or use your preferred vendoring tool to include a copy in your project. Ensure that the dependencies documented in vendor.conf are also available (using those exact versions or different versions of your choosing).

This library, by default, also depends on the GpgME and libostree C libraries. Either install them:

Fedora$ dnf install gpgme-devel libassuan-devel libostree-devel
macOS$ brew install gpgme

or use the build tags described below to avoid the dependencies (e.g. using go build -tags …)

Supported build tags

  • containers_image_openpgp: Use a Golang-only OpenPGP implementation for signature verification instead of the default cgo/gpgme-based implementation; the primary downside is that creating new signatures with the Golang-only implementation is not supported.
  • containers_image_ostree_stub: Instead of importing ostree: transport in github.com/containers/image/transports/alltransports, use a stub which reports that the transport is not supported. This allows building the library without requiring the libostree development libraries. The github.com/containers/image/ostree package is completely disabled and impossible to import when this build tag is in use.

Contributing

When developing this library, please use make (or make … BUILDTAGS=…) to take advantage of the tests and validation.

License

ASL 2.0

Contact

  • Mailing list: containers-dev
  • IRC: #container-projects on freenode.net

image's People

Contributors

akihirosuda avatar ashcrow avatar aweiteka avatar baude avatar callisto13 avatar coolljt0725 avatar crazykev avatar cyphar avatar danail-branekov avatar giuseppe avatar glestaris avatar goern avatar grantseltzer avatar hferentschik avatar hustcat avatar jonboulle avatar jwhonce avatar lucab avatar mfojtik avatar mrunalp avatar mtrmac avatar nalind avatar owtaylor avatar rhatdan avatar runcom avatar tomsweeneyredhat avatar tscolari avatar twaugh avatar umohnani8 avatar vdemeester avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.