Skip to content

Commit

Permalink
Merge branch 'main' into lifecycle-tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
AidanDelaney authored Oct 22, 2024
2 parents 28136b2 + 8f1d3bc commit 1cb041a
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
name: public
path: ./public
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
Expand Down
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 1cb041a

Please sign in to comment.