Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

Learn more
Work with containers' images
Branch: master
Clone or download
rhatdan Merge pull request #587 from Silvanoc/default-ostree-stub
ostree: default is no OStree support
Latest commit b1222ce Jul 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
copy copy: progress bar: show messages on completion Mar 12, 2019
directory pkg/blobinfocache: Split implementations into subpackages Mar 12, 2019
docker Use map literals for headers intead of explicit updates Jun 19, 2019
docs Fix typo in docs/containers-registries.conf.5.md Jun 18, 2019
image Add "Env" to ImageInspectInfo Jun 25, 2019
internal Move signature.nameImageTransportMock into new internal/testing/mocks Dec 6, 2018
manifest Add "Env" to ImageInspectInfo Jun 25, 2019
oci pkg/blobinfocache: Split implementations into subpackages Mar 12, 2019
openshift ImageDestination: add HasThreadSafePutBlob() method Dec 18, 2018
ostree use 'containers_image_ostree' as build tag Jul 11, 2019
pkg config.go: improve debug message Jun 21, 2019
signature signature/policy_config: Fix "pat" -> "path" typo in builtinDefaultPo… Mar 9, 2019
storage Try harder in storageImageDestination.TryReusingBlob Jun 17, 2019
tarball fix lint errors: consistent receiver names Dec 19, 2018
transports use 'containers_image_ostree' as build tag Jul 11, 2019
types Add "Env" to ImageInspectInfo Jun 25, 2019
version Bump version to 2.0.1-dev Jun 13, 2019
.gitignore Issue #475 Add flag for image compress layer for oci destination Jul 12, 2018
.pullapprove.yml *: add pullapprove Jun 27, 2016
.travis.Dockerfile .travis.Dockerfile: use ubuntu:18.04 May 13, 2019
.travis.yml Revert ".travis: specify HOME env variable" Jan 2, 2019
CONTRIBUTING.md Modify CONTRIBUTING.md to prefer smaller commits over squashing them Nov 6, 2017
LICENSE Move to Apache 2 license Jun 24, 2016
MAINTAINERS add @vrothberg to the list of MAINTAINERS Jan 11, 2019
Makefile ostree: default is no OStree support Jul 11, 2019
README.md improve README.md and the review of the changes Jul 11, 2019
doc.go Fix godoc code formatting Nov 15, 2018
registries.conf RFC: Significantly restructure the registries.conf documentation Jun 11, 2019
vendor.conf Switch to github.com/etcd-io/bbolt Apr 12, 2019

README.md

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 ostree-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: Import ostree: transport in github.com/containers/image/transports/alltransports. This builds the library requiring the libostree development libraries. Otherwise a stub which reports that the transport is not supported gets used. The github.com/containers/image/ostree package is completely disabled and impossible to import when this build tag is not in use.

Contributing

Information about contributing to this project.

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

License

Apache License 2.0

SPDX-License-Identifier: Apache-2.0

Contact

  • Mailing list: containers-dev
  • IRC: #container-projects on freenode.net
You can’t perform that action at this time.