Introduction to Images
Container images are the blueprint for creating containers, encapsulating everything required to run an application—from the code itself to the runtime, system libraries, and dependencies.
The Cycle platform implements the Open Container Initiative spec for all images. This means that any image that would otherwise run on Docker or Kubernetes, will run the exact same way on Cycle. Images can be imported from numerous sources, including Docker Hub or other registries, tarballs, or even building directly off of code with a Dockerfile.
Image Sources
Images are grouped into image sources, which store the configuration and authentication details required for repeatedly building an image. Image sources may also have an ACL set to restrict who can view or build images from the specified source.
Learn how to set up an image source:
How Images are Imported on Cycle
When importing an image into Cycle, the platform goes through two distinct steps.
- Create - Creates the 'shell' of the image. Essentially, this creates the ID to which the image contents can be imported into.
- Import - The factory core service fetches or builds the image and flattens it into an OCI image without layers to save space.
In the portal, this process is abstracted, but is an important concept when utilizing the API or pipelines.
Learn how to import images on Cycle:
Image Storage
When images are imported in Cycle, they are stored by the platform for distribution to any server that will run an instance utilizing it. Each hub comes with a certain amount of image storage, based on its tier.
Unused images can be pruned in the portal or via the API, which removes all unused images older than 15 minutes.
Image Builder
Images are built through Cycle's factory service by default, but functionality can be expanded using an image builder integration. Image builder integrations can be utilized to increase build speeds, take advantage of organization-wide caching, and more.
Build Logs
All image imports will generate a build log. This log captures the direct output from building the image on our factory core service. This can be useful for debugging failed imports.
Learn how to access build logs: