Skip to content

Commit

Permalink
Adds Build time and runtime images content to the Platform docs (#770)
Browse files Browse the repository at this point in the history
* adds build and run image content

Signed-off-by: Hanan Younes <[email protected]>
Signed-off-by: Aidan Delaney <[email protected]>

---------

Signed-off-by: Hanan Younes <[email protected]>
Signed-off-by: Aidan Delaney <[email protected]>
Co-authored-by: Aidan Delaney <[email protected]>
Co-authored-by: Aidan Delaney <[email protected]>
  • Loading branch information
3 people authored Oct 22, 2024
1 parent 10d32b3 commit aaddb90
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 3 deletions.
57 changes: 57 additions & 0 deletions content/docs/for-platform-operators/concepts/base-images.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
+++
title="Base image types"
weight=99
+++

As you already know, `Cloud Native Buildpacks (CNBs)` transform your application source code into `OCI images` that can run on any cloud.

<!--more-->

Each buildpack checks the source code and provides any relevant dependencies in the form of layers. Then, buildpack-provided layers are placed atop a runtime `base image` to form the final application image.

## Base image types

A `base image` is an `OCI image` containing the base, or initial set of layers, for other images. It is helpful to distinguish between two distinct types of images, `Build` and `Runtime` images.

### Build image

A `build image` is an `OCI image` that serves as the base image for the `build` environment in which the CNB `lifecycle` and buildpacks are executed.

A typical `build image` might determine:

* The OS distro in the build environment
* OS packages installed in the build environment
* Trusted CA certificates in the build environment
* The default user in the build environment

#### Anatomy of a build image

Typically, a `build` image may include:

* Shell
* C-compiler
* Minimal operating system distribution, such as Linux utilities that build systems might call out to
* Build time libraries

### Runtime image

A `runtime image` is an `OCI image` that serves as the base image for the final application image.

A typical runtime image might determine:

* The OS distro or distroless OS in the launch environment
* OS packages installed in the launch environment
* Trusted CA certificates in the launch environment
* The default user in the run environment

#### Anatomy of a runtime base image

A `runtime` image may contain:

* No-shell, unless it's needed by the application
* Runtime libraries, such as Libfreetype
* Runtime platforms, such as python interpreter, which are generally added by buildpacks

For more details on `build` and `runtime` images, you can check out the [specification][spec]

[spec]: https://github.com/buildpacks/spec/blob/main/platform.md#build-image
7 changes: 4 additions & 3 deletions content/docs/for-platform-operators/concepts/builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@ A builder consists of the following components:

* [Buildpacks][buildpack]
* A [lifecycle][lifecycle]
* A [build image](/docs/for-app-developers/concepts/base-images/build/)
* A reference to a [run image](/docs/for-app-developers/concepts/base-images/run/)
* A [build image][build-image]
* A reference to a [run image][run-image]

### Resources

To learn how to create your own builder, see our [Operator's Guide][operator-guide].

[builder-config]: /docs/reference/builder-config/
[buildpack]: /docs/for-platform-operators/concepts/buildpack/
[lifecycle]: /docs/for-platform-operators/concepts/lifecycle/
[operator-guide]: /docs/for-platform-operators/
[build-image]: /docs/for-platform-operators/concepts/base-images
[run-image]: /docs/for-platform-operators/concepts/base-images

0 comments on commit aaddb90

Please sign in to comment.