This repository is the source for the Docker images containerbase/base
and ghcr.io/containerbase/base
.
Commits to main
branch are automatically build and published.
You need a recent docker version with buildx >= v0.4.0
plugin installed.
You first need to build the cli before building the docker images.
> pnpm install
> pnpm build
If you make changes to the src
folder or the Dockerfile
, you need to rebuild the containerbase/base
image.
docker buildx bake
You can use the following command to ignore remote cache for local testing. This will probably speedup 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 checkout test
folder.
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 specifying an APT_HTTP_PROXY
argument.
Example: docker build --build-arg APT_HTTP_PROXY=https://apt.company.com . -t my/image
You can simply export APT_HTTP_PROXY
to your local env and our build tools will use your apt proxy for http
sources.
To use a custom base image with containerbase/base
checkout custom-base-image docs.
To add custom root certificates to the containerbase/base
base image checkout custom-root-ca docs.
To temporary disable / skip some tool installer set the build arg IGNORED_TOOLS
to a comma separated case-insensitive tool names list.
The following sample will skip 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=docker versioning=docker
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. Checkout 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 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
.