Skip to main content

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"

Metadata

Release files for justin-runner 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for justin-runner 0.1.0
File Size Uploaded
justin_runner-0.1.0.tar.gz 22.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for justin-runner 0.1.0
File Interpreter ABI Platform
justin_runner-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 47.1 kB

Release files / justin_runner-0.1.0.tar.gz

Download URL justin_runner-0.1.0.tar.gz
Size 22.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7e519c801c1576b5d5399fa4ccfe1f2b096007d832dbce589a59a6319acab75a
BLAKE2b-256 checksum
How to use checksums
d37fc3d594c9a8a2f09f018e7b2e4e08d36e98e62d5a94a614c8631e00ad1c0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.6 Linux/6.5.0-4-amd64

Release files / justin_runner-0.1.0-py3-none-any.whl

Download URL justin_runner-0.1.0-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b4f636999bcb34bbe8e727b18d3c9a164b44b434f9a1569ec223f180578b00b
BLAKE2b-256 checksum
How to use checksums
985614d9fdff708088093c499285cdad748ff2f4a089f1aaceb5f61f9c2f9b63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.6 Linux/6.5.0-4-amd64

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page