Build Environments see history edit this page

Talks about: <a class="post-tag post-tag-build" href="/tags/build">build</a>, and <a class="post-tag post-tag-env" href="/tags/env">env</a>

ilo allows you to define your build environment either in a Containerfile/Dockerfile or any other OCI Image compliant way. In contrast to toolbx, ilo relies on immutable containers which makes it easier to share those images across your team. ilo uses the same mechanism to define build environments that developers are already using to define their application run environments. Therefore, onboarding and adapting container based build environments should be easy for most teams.

As an example, consider the following Containerfile that is based on the official Maven image and extends that with another binary (hugo in this case).

# write some Containerfile
$ cat your.containerfile
FROM maven:3-openjdk-11-slim

RUN apt-get update && apt-get install hugo -y

This image can be build just like any other image with your typical tooling, e.g. using podman:

$ podman build --tag your.image:your.tag --file your.containerfile path/to/build/context

The idea behind ilo is that you use this image to start a container that mounts your project directory and is able to execute any command that you are using to build/test/package your project.

Take a look at the detailed instructions for ilo shell on how to use your created image.