├── .slugignore ├── CODEOWNERS ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── config.yml │ └── docs-request.md ├── styles │ └── config │ │ └── vocabularies │ │ └── Buildpacks │ │ └── accept.txt ├── dependabot.yml ├── PR_TEMPLATE.md ├── workflows │ ├── vale-lint.yml │ └── main.yml └── bug_report.md ├── content ├── docs │ ├── reference │ │ ├── config │ │ │ ├── _index.md │ │ │ └── package-config.md │ │ ├── _index.md │ │ └── spec │ │ │ ├── _index.md │ │ │ ├── distribution-api.md │ │ │ ├── platform-api.md │ │ │ └── buildpack-api.md │ ├── for-app-developers │ │ ├── how-to │ │ │ ├── _index.md │ │ │ ├── build-inputs │ │ │ │ ├── _index.md │ │ │ │ ├── specify-default-launch-process.md │ │ │ │ ├── specify-export-target.md │ │ │ │ └── use-inline-buildpacks.md │ │ │ ├── build-outputs │ │ │ │ ├── _index.md │ │ │ │ ├── download-sbom.md │ │ │ │ ├── understand-failures.md │ │ │ │ └── inspect-app.md │ │ │ └── special-cases │ │ │ │ ├── _index.md │ │ │ │ ├── build-for-windows.md │ │ │ │ └── build-for-arm.md │ │ ├── concepts │ │ │ ├── _index.md │ │ │ ├── base-images │ │ │ │ ├── _index.md │ │ │ │ ├── build.md │ │ │ │ ├── run.md │ │ │ │ └── stack.md │ │ │ ├── build.md │ │ │ ├── rebase.md │ │ │ ├── platform.md │ │ │ ├── builder.md │ │ │ └── experimental-features.md │ │ ├── _index.md │ │ └── tutorials │ │ │ └── _index.md │ ├── for-buildpack-authors │ │ ├── how-to │ │ │ ├── _index.md │ │ │ ├── migrate │ │ │ │ ├── _index.md │ │ │ │ ├── deprecated │ │ │ │ │ ├── _index.md │ │ │ │ │ ├── buildpack-api-0.4-0.5.md │ │ │ │ │ └── buildpack-api-0.6-0.7.md │ │ │ │ ├── buildpack-api-0.8-0.9.md │ │ │ │ ├── buildpack-api-0.7-0.8.md │ │ │ │ └── buildpack-api-0.9-0.10.md │ │ │ ├── write-buildpacks │ │ │ │ ├── _index.md │ │ │ │ ├── create-slice-layers.md │ │ │ │ ├── create-layer.md │ │ │ │ ├── add-labels.md │ │ │ │ ├── add-sbom.md │ │ │ │ ├── re-use-layers.md │ │ │ │ └── specify-launch-processes.md │ │ │ ├── write-extensions │ │ │ │ └── _index.md │ │ │ └── distribute-buildpacks │ │ │ │ ├── craft-order.md │ │ │ │ ├── publish-buildpack │ │ │ │ └── _index.md │ │ │ │ └── package-buildpack.md │ │ ├── concepts │ │ │ ├── _index.md │ │ │ ├── package.md │ │ │ ├── targets.md │ │ │ └── component-buildpack.md │ │ ├── tutorials │ │ │ ├── _index.md │ │ │ ├── basic-buildpack │ │ │ │ ├── _index.md │ │ │ │ └── 03_detection.md │ │ │ └── basic-extension │ │ │ │ ├── _index.md │ │ │ │ ├── 03_building-blocks-extension.md │ │ │ │ └── 01_setup-local-environment.md │ │ └── _index.md │ ├── for-platform-operators │ │ ├── concepts │ │ │ ├── _index.md │ │ │ ├── lifecycle │ │ │ │ ├── rebase.md │ │ │ │ ├── launch.md │ │ │ │ ├── build.md │ │ │ │ ├── create.md │ │ │ │ ├── export.md │ │ │ │ ├── analyze.md │ │ │ │ └── extend.md │ │ │ ├── builder.md │ │ │ └── base-images.md │ │ ├── how-to │ │ │ ├── _index.md │ │ │ ├── migrate │ │ │ │ ├── _index.md │ │ │ │ ├── deprecated │ │ │ │ │ ├── _index.md │ │ │ │ │ ├── platform-api-0.6-0.7.md │ │ │ │ │ ├── platform-api-0.5-0.6.md │ │ │ │ │ ├── platform-api-0.3-0.4.md │ │ │ │ │ └── platform-api-0.4-0.5.md │ │ │ │ └── platform-api-0.8-0.9.md │ │ │ ├── build-inputs │ │ │ │ ├── _index.md │ │ │ │ ├── create-builder │ │ │ │ │ ├── _index.md │ │ │ │ │ ├── extensions.md │ │ │ │ │ ├── run-base.md │ │ │ │ │ └── build-base.md │ │ │ │ └── build-env.md │ │ │ └── integrate-ci │ │ │ │ ├── _index.md │ │ │ │ ├── pack │ │ │ │ ├── cli │ │ │ │ │ └── _index.md │ │ │ │ ├── concepts │ │ │ │ │ └── _index.md │ │ │ │ └── _index.md │ │ │ │ ├── gitlab.md │ │ │ │ ├── circleci.md │ │ │ │ ├── piper.md │ │ │ │ └── kpack.md │ │ ├── _index.md │ │ └── tutorials │ │ │ └── _index.md │ └── .common │ │ └── concepts │ │ ├── composite-buildpack.md │ │ └── buildpack.md └── features.md ├── tools ├── tools.go └── get_pack_commands.go ├── themes └── buildpacks │ ├── layouts │ ├── _default │ │ ├── list.html │ │ ├── single.html │ │ ├── standalone.html │ │ ├── community.html │ │ └── baseof.html │ ├── partials │ │ ├── footline.html │ │ ├── support.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── meta.html │ │ ├── sidebar.html │ │ └── docs.html │ └── shortcodes │ │ ├── summary.html │ │ ├── feature.html │ │ ├── download-button.html │ │ ├── page-replace-toggle-option.html │ │ ├── pack-version.html │ │ ├── tab.html │ │ ├── page-replace-toggle.html │ │ ├── tabs.html │ │ ├── podman-setup.html │ │ └── pack-install.html │ ├── static │ └── images │ │ ├── ko.png │ │ ├── build.png │ │ ├── cve.png │ │ ├── jib.png │ │ ├── analyze.png │ │ ├── detect.png │ │ ├── docker.png │ │ ├── export.png │ │ ├── favicon.png │ │ ├── history.png │ │ ├── bg-pattern.png │ │ ├── openshift.png │ │ ├── lifecycle-phases.png │ │ ├── buildpacks-social-card.jpg │ │ ├── registry-add-buildpack.png │ │ ├── buildpacks-social-card-square.jpg │ │ ├── github-mark.svg │ │ ├── download-icon.svg │ │ ├── list-item-active.svg │ │ ├── slack-mark.svg │ │ ├── list-item.svg │ │ └── learn-icon.svg │ ├── assets │ └── scss │ │ ├── components │ │ ├── _lists.scss │ │ ├── _footline.scss │ │ ├── _well.scss │ │ ├── _grid.scss │ │ ├── _highlights.scss │ │ ├── _talks.scss │ │ ├── _text-note.scss │ │ ├── _header.scss │ │ ├── _content.scss │ │ ├── _tabs.scss │ │ ├── _table.scss │ │ ├── _code.scss │ │ ├── _quote.scss │ │ ├── _calendar.scss │ │ ├── _sidebar.scss │ │ ├── _footer.scss │ │ ├── _hero.scss │ │ └── _button.scss │ │ ├── _layout.scss │ │ ├── _helpers.scss │ │ ├── _base.scss │ │ ├── _code.scss │ │ ├── site.scss │ │ ├── _colors.scss │ │ └── _typography.scss │ └── theme.toml ├── .editorconfig ├── archetypes └── default.md ├── app.json ├── .vale.ini ├── data └── calendar.yml ├── .gitignore ├── .gitpod.yml ├── DEVELOPMENT.md ├── README.md └── RELEASE.md /.slugignore: -------------------------------------------------------------------------------- 1 | /src 2 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @buildpacks/learning-maintainers 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @buildpacks/learning-maintainers 2 | -------------------------------------------------------------------------------- /content/docs/reference/config/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Configuration" 3 | include_summaries=true 4 | +++ -------------------------------------------------------------------------------- /content/docs/reference/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Reference" 3 | weight=99 4 | include_summaries=true 5 | 6 | +++ -------------------------------------------------------------------------------- /tools/tools.go: -------------------------------------------------------------------------------- 1 | // +build tools 2 | 3 | package tools 4 | 5 | import ( 6 | _ "github.com/gohugoio/hugo" 7 | ) 8 | -------------------------------------------------------------------------------- /content/docs/for-app-developers/how-to/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="How To" 3 | weight=3 4 | include_summaries=true 5 | +++ 6 | -------------------------------------------------------------------------------- /content/docs/for-app-developers/concepts/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Concepts" 3 | weight=2 4 | include_summaries=true 5 | +++ 6 | -------------------------------------------------------------------------------- /content/docs/for-buildpack-authors/how-to/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="How To" 3 | weight=3 4 | include_summaries=true 5 | +++ 6 | -------------------------------------------------------------------------------- /content/docs/for-platform-operators/concepts/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Concepts" 3 | weight=2 4 | include_summaries=true 5 | +++ -------------------------------------------------------------------------------- /content/docs/for-platform-operators/how-to/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="How To" 3 | weight=3 4 | include_summaries=true 5 | +++ 6 | -------------------------------------------------------------------------------- /themes/buildpacks/layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 | {{ partial "docs.html" . }} 4 | 5 | {{ end }} 6 | -------------------------------------------------------------------------------- /themes/buildpacks/layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 | {{ partial "docs.html" . }} 4 | 5 | {{ end }} 6 | -------------------------------------------------------------------------------- /themes/buildpacks/static/images/ko.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/ko.png -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = space 3 | indent_size = 2 4 | 5 | [Makefile] 6 | indent_style = tab 7 | indent_size = 4 8 | -------------------------------------------------------------------------------- /archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | draft: true 5 | --- 6 | 7 | -------------------------------------------------------------------------------- /content/docs/for-buildpack-authors/concepts/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Concepts" 3 | weight=2 4 | include_summaries=true 5 | +++ 6 | -------------------------------------------------------------------------------- /themes/buildpacks/static/images/build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/build.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/cve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/cve.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/jib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/jib.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/analyze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/analyze.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/detect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/detect.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/docker.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/export.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/favicon.png -------------------------------------------------------------------------------- /themes/buildpacks/static/images/history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildpacks/docs/HEAD/themes/buildpacks/static/images/history.png -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "buildpacks": [ 3 | { 4 | "url": "https://github.com/heroku/heroku-buildpack-static.git" 5 | } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /content/docs/for-buildpack-authors/how-to/migrate/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Migrate" 3 | weight=99 4 | 5 | include_summaries=true 6 | +++ 7 | -------------------------------------------------------------------------------- /content/docs/for-platform-operators/how-to/migrate/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Migrate" 3 | weight=99 4 | 5 | include_summaries=true 6 | +++ 7 | -------------------------------------------------------------------------------- /themes/buildpacks/assets/scss/components/_lists.scss: -------------------------------------------------------------------------------- 1 | ul.list-circle { 2 | > li { 3 | list-style-type: circle !important; 4 | } 5 | } -------------------------------------------------------------------------------- /themes/buildpacks/layouts/partials/footline.html: -------------------------------------------------------------------------------- 1 |
36 |
37 | The pre-populated text in the body of the issue is considered structured data, and will be used to automatically add the buildpack to the registry index. Do not change it.
38 |
39 | Click _Submit new issue_, and your request will be processed within seconds. If the image is a valid buildpack, it will be added to the registry. If there is a problem, the issue will be tagged as a "Failure" and a comment will be added with a link to get more details. Whether successful or not, the issue will be closed.
40 |
41 | > **Managing your namespace**
42 | >
43 | > The first time you publish a buildpack with a given namespace, the registry will automatically assign your GitHub user as that namespace's owner. From then on, only you can publish new buildpacks or buildpack versions under that namespace.
44 | >
45 | > If you try to publish a buildpack with a namespace that's already in use, the request will fail and the GitHub issue will be closed. You can add or change namespace owners by submitting a Pull Request to the [buildpacks/registry-namespaces](https://github.com/buildpacks/registry-namespaces/).
46 |
47 | [package]: /docs/for-buildpack-authors/how-to/distribute-buildpacks/package-buildpack
48 |
--------------------------------------------------------------------------------
/content/docs/for-platform-operators/how-to/integrate-ci/pack/_index.md:
--------------------------------------------------------------------------------
1 |
2 | +++
3 | title="Pack"
4 | aliases=[
5 | "/docs/install-pack/",
6 | "/docs/tools/pack/",
7 | "/docs/tools/pack/cli/install/"
8 | ]
9 | weight=1
10 | +++
11 |
12 | Pack is a CLI tool maintained by the CNB project to support the use of buildpacks.
13 |
14 |
15 |
16 | It enables the following functionality:
17 |
18 | 1. [`build`][build] an application using buildpacks.
19 | 1. [`rebase`][rebase] application images created using buildpacks.
20 | 1. Creation of various [components][components] used within the ecosystem.
21 |
22 | Pack works as both a [Command Line Interface (CLI)](#pack-cli) and a [Go library](#go-library).
23 |
24 | ---
25 |
26 | ## `pack` CLI
27 |
28 | ### Install
29 |
30 | You can install the most recent version of the `pack` CLI (version **{{< pack-version >}}**) on the following operating systems:
31 |
32 | {{< pack-install >}}
33 |
34 | #### RCs
35 | Prior to publishing releases, we publish RC (release candidate) builds of `pack`. You can install those by downloading the releases from the [releases page on GitHub][github-releases].
36 |
37 | #### Auto-completion
38 |
39 | `pack` supports shell completions for the following shells -
40 |
41 | * `bash`
42 | * `fish`
43 | * `zsh`
44 |
45 | To configure your `bash` shell to load completions for each session, add the following to your `.bashrc` or `.bash_profile`:
46 |
47 | ```bash
48 | . $(pack completion)
49 | ```
50 |
51 | To configure your `fish` shell to load completions for each session, add the following to your `~/.config/fish/config.fish`:
52 |
53 | ```bash
54 | source (pack completion --shell fish)
55 | ```
56 |
57 | To configure your `zsh` shell to load completions for each session, add the following to your `.zshrc`:
58 |
59 | ```bash
60 | . $(pack completion --shell zsh)
61 | ```
62 |
63 | ### References
64 |
65 | - [Docs](/docs/for-platform-operators/how-to/integrate-ci/pack/cli/pack/)
66 | - [Source](https://github.com/buildpacks/pack/)
67 |
68 | ---
69 |
70 | ## Go library
71 |
72 | ### Install
73 |
74 | ```shell
75 | go get -u github.com/buildpacks/pack
76 | ```
77 |
78 | ### References
79 |
80 | - [Docs](https://pkg.go.dev/github.com/buildpacks/pack)
81 | - [Source](https://github.com/buildpacks/pack/)
82 |
83 | [build]: /docs/for-app-developers/concepts/build/
84 | [rebase]: /docs/for-app-developers/concepts/rebase/
85 | [components]: /docs/for-platform-operators/concepts/
86 | [github-releases]: https://github.com/buildpacks/pack/releases
87 |
--------------------------------------------------------------------------------
/content/docs/for-platform-operators/how-to/build-inputs/create-builder/build-base.md:
--------------------------------------------------------------------------------
1 |
2 | +++
3 | title="Create a build base image"
4 | aliases=[
5 | "/docs/operator-guide/create-build-base"
6 | ]
7 | weight=1
8 | +++
9 |
10 | The build-time base image provides the OS-level dependencies for buildpacks at build-time.
11 |
12 |
13 |
14 | ## Define a build base image for your CNB build
15 |
16 | We need a Dockerfile similar to the following:
17 |
18 | ```Dockerfile
19 | # Define the base image
20 | FROM ubuntu:noble
21 |
22 | # Install packages that we want to make available at build time
23 | RUN apt-get update && \
24 | apt-get install -y xz-utils ca-certificates && \
25 | rm -rf /var/lib/apt/lists/*
26 |
27 | # Set required CNB user information
28 | ARG cnb_uid=1000
29 | ARG cnb_gid=1000
30 | ENV CNB_USER_ID=${cnb_uid}
31 | ENV CNB_GROUP_ID=${cnb_gid}
32 |
33 | # Create user and group
34 | RUN groupadd cnb --gid ${CNB_GROUP_ID} && \
35 | useradd --uid ${CNB_USER_ID} --gid ${CNB_GROUP_ID} -m -s /bin/bash cnb
36 |
37 | # Set user and group
38 | USER ${CNB_USER_ID}:${CNB_GROUP_ID}
39 |
40 | # Set required CNB target information
41 | LABEL io.buildpacks.base.distro.name="your distro name"
42 | LABEL io.buildpacks.base.distro.version="your distro version"
43 | ```
44 |
45 | ### Define the base image
46 |
47 | We start with `ubuntu:noble` as our base image.
48 | You can use any operating system, operating system distribution, and operating system distribution version of your choosing,
49 | as long as they are supported by the available buildpacks.
50 |
51 | ### Install packages that we want to make available at build time
52 |
53 | Install any system packages that your buildpacks will need.
54 |
55 | ### Set required CNB user information
56 |
57 | We need to define `CNB_USER_ID` and `CNB_GROUP_ID` in the environment so that the lifecycle can run as the correct user.
58 |
59 | ### Create user and group, set user and group
60 |
61 | The `USER` in the image config must match the user indicated by `CNB_USER_ID` and `CNB_GROUP_ID`.
62 |
63 | The given user **MUST NOT** be a root user, and must have a writeable home directory.
64 |
65 | ### Set required CNB target information
66 |
67 | Finally, we need to label the image with operating system distribution information for platforms and the lifecycle to use.
68 |
69 | To determine which values to provide, see [targets](/docs/for-buildpack-authors/concepts/targets/) concept information.
70 |
71 | ## Build the build base image
72 |
73 | ```bash
74 | docker build . -t cnbs/sample-base-build:noble
75 | ```
76 |
--------------------------------------------------------------------------------
/content/docs/for-platform-operators/concepts/lifecycle/extend.md:
--------------------------------------------------------------------------------
1 | +++
2 | title="Extend"
3 | weight=9
4 | +++
5 |
6 | The `extender` applies `Dockerfiles` output by image extensions to the `build` or `runtime` base image.
7 |
8 |
9 |
10 | ### Exit Codes
11 |
12 | When extending the build image:
13 |
14 | - In addition to the outputs enumerated below, outputs produced by `extender` include those produced by `builder` - as the `lifecycle` will run the `build` phase after extending the `build image`.
15 | - Platforms MUST skip the `builder` and proceed to the `exporter`.
16 |
17 | | Exit Code | Result |
18 | |-----------------|-------------------------------------|
19 | | `0` | Success |
20 | | `11` | Platform API incompatibility error |
21 | | `12` | Buildpack API incompatibility error |
22 | | `1-10`, `13-19` | Generic lifecycle errors |
23 | | `100-109` | Extension-specific lifecycle errors |
24 |
25 | - For each extension in `{{ .Summary | replaceRE "