Skip to main content

Runner for 'just' commands inside a container

Project description

justin

Run just commands inside a container.

Installation

System-wide:

$ just install

User:

$ just install ~/.local

Running just

$ justin --workspace . just ...
$ justin --workspace . --copy just ...

$ justin \
  -E podman \
  -F ci
  -w . \
  -v ./artifacts:/artifacts\
  just -f ci.justfile somestage

Building images

Default image:

$ justin build 

Flavors

$ justin --flavor minimal build
$ justin --flavor ci build
$ justin -F /path/to/my/flavor build

justin supports a concept of "flavors", which is a way to customize how images are built. justin ships with the following flavors:

  • minimal (default one) - creates a minimal image viable for running just commands.
  • ci - creates a bigger image with some tools preinstalled, more suitable for continuous integration systems.

You may also point justin to a the directory with a custom flavor, which is located outside of the original build context. justin will copy and use your flavor.

During build flavors are copied to /install directory within a built container.

Flavors have the following requirements:

  • they must provide a Flavor Configuration File (see below)
  • inside a flavor directory there must be an install directory, which will be copied into /install within the container, but which will be removed from the final image
  • they must provide an executable /install/install.sh
  • they must install /usr/bin/tini and just executables within the container
  • they must provide /usr/local/bin/docker-entrypoint executable within the container, which will be used as container entrypoint

Flavor Configuration File

Each flavor must provide a flavor.toml file with [build.args] section. Each field from the [build.args] section will be used as a --build-arg during the build. In case of name conflicts between build args in flavor.toml and --build-arg passed in command line, command line ones have priority.

Example:

[build.args]
FROM_IMAGE = "debian"
FROM_TAG = "trixie-slim"

VENDOR = "John Doe's Company"
AUTHORS = "John Doe"
VERSION = "1.0"
ARCH = "x86-64"
DESCRIPTION = "One image to rule them all"
JUST_EXECUTABLE = "just"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

justin_runner-0.1.0.tar.gz (22.5 kB view hashes)

Uploaded Source

Built Distribution

justin_runner-0.1.0-py3-none-any.whl (24.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page