This repository is the source for the Docker images containerbase/base
and ghcr.io/containerbase/base
.
The commits to the main
branch are automatically built and published.
Install a recent version of:
You must first build the CLI, before you build the Docker images.
> pnpm install
> pnpm build
If you make changes to the src
folder or the Dockerfile
, you must:
- run
pnpm build
- rebuild the
containerbase/base
image
pnpm build
docker buildx bake
You can use the following command to ignore the remote cache for local testing. This may speed up your local builds.
docker buildx bake --set *.cache-from=
To run one of the tests use the following command, it will run the Java tests from test/java
.
TAG=java docker buildx bake test
For other test images see the test
folder.
To run the noble
tests use the following command, it will run the test from test/Dockerfile.noble
.
TAG=noble docker buildx bake test-distro
To run the jammy
tests use the following command, it will run the test from test/Dockerfile.jammy
.
TAG=jammy docker buildx bake test-distro
You can configure an apt proxy for the build by setting an APT_HTTP_PROXY
argument.
For example: docker build --build-arg APT_HTTP_PROXY=https://apt.company.com . -t my/image
You can export APT_HTTP_PROXY
to your local env and our build tools will use your apt proxy for the http
sources.
To use a custom base image with containerbase/base
read the custom-base-image docs.
To add custom root certificates to the containerbase/base
base image read the custom-root-ca docs.
To temporarily disable or skip some tool installer: set the build arg IGNORED_TOOLS
to a comma separated case-insensitive tool names list.
For example, the following Dockerfile
skips the installation of powershell
and node
:
FROM containerbase/base
ARG IGNORED_TOOLS=powershell,node
# renovate: datasource=github-releases packageName=PowerShell/PowerShell
RUN install-tool powershell v7.1.3
# renovate: datasource=github-releases packageName=containerbase/node-prebuild versioning=node
RUN install-tool node 20.9.0
# renovate: datasource=github-releases packageName=moby/moby
RUN install-tool docker 20.10.7
You can replace the default registries used to download the tools. Read the custom-registries docs for more details.
The new CLI has some new logging features.
You can change the default info
log level by setting the CONTAINERBASE_LOG_LEVEL
1 environment variable.
If CONTAINERBASE_DEBUG
is set to true
the CLI will automatically set the log level to debug
, if not explicit set.
You can also log to a .ndjson
file via CONTAINERBASE_LOG_FILE
and CONTAINERBASE_LOG_FILE_LEVEL
environment variables.
The default value for CONTAINERBASE_LOG_FILE_LEVEL
is debug
.