Overrides log_level.
Enables debug mode. Show additional logs.
In the event a problem, debug mode provides context for common resources, such as package configurations.
Overrides log_level.
Enables quiet mode. Elide most console logs.
In the event of a problem, remove this option.
Overrides global rocklet options.
Useful for populating values dynamically.
Show usage menu.
Show version banner.
Forward <ROCKLET OPTIONS> from rockhopper to individual rocklet containers.
See rockhopper -h for more detail.
rockhopper looks for a configuration file rockhopper.toml in the current working directory.
Default: info
Also accepts quiet (less logs) or debug (more logs).
Example:
log_level = "debug"Default:
[
".DS_Store", # Finder
"Thumbs.db", # Explorer
]Skip corresponding file path patterns for dest file mapping.
Syntax: Glob.
Example:
excludes = [
".DS_Store", # Finder
".directory", # Dolphin
"Thumbs.db", # Explorer
]Default: (empty)
Supply additional CLI arguments to docker run... commands.
Example:
docker_args = ["--privilieged"]Required fields vary by distribution.
Package attribute table.
Example:
[rocklet]
name = "raygun"
version = "0.0.1"Nonblank.
Commonly required across package managers.
Example:
[rocklet]
name = "raygun"Commonly required across package managers.
Example:
[rocklet]
name = "raygun"
version = "0.0.1"Often required by package managers.
Release increment, relative to an upstream version.
Example:
[rocklet]
name = "raygun"
version = "0.0.1"
rev = "1"Often required by package managers.
Contact information for developer managing packages.
Format: RFC822.
Example:
[rocklet]
name = "raygun"
maintainer = "Marvin the Martian <marvin@mars.test>"Often required by package managers.
A concise description of the package.
Example:
[rocklet]
name = "raygun"
summary = "Space modulator"Often required by package managers.
A brief description of the package.
Example:
[rocklet]
name = "raygun"
description = "Illudium Q-36 explosive space modulator"Generally recommended.
A Copyright identifier.
Example:
[rocklet]
name = "raygun"
copyright = "Copyright (C) 1948 Marvin the Martian"Often required by package managers.
A concise software license identifier. Format: SPDX.
Example:
[rocklet]
name = "raygun"
license = "0BSD"Operating systems often have separate conventions to manage longer license documentation.
Often required by package managers.
Software homepage.
Example:
[rocklet]
url = "https://mars.test/"Default: /mnt/rockhopper
Customize the location of the container directory where the host current working directory loads.
Example:
[rocklet]
mount_path = "/mnt/source-media"A distro may have additional optional and/or required fields.
Template specification directory.
Default: <container-home>/templates
Relative to mount path.
Example:
[rocklet]
mount_path = "/mnt/rockhopper"
templates = "/mnt/rockhopper/templates"Jinja templated fields treat line feeds (\n) as literals.
Artifact directory root.
Default: /mnt/rockhopper/.rockhopper
Relative to mount path.
Example:
[rocklet]
mount_path = "/mnt/rockhopper"
cache = "/mnt/rockhopper/install-media"Optional.
Map of destination file path to source media file path.
Destination file path relative to <rocklet-cache>/source-media.
Default: (empty)
Example:
[dest]
"usr/bin" = "bin"
"etc/nginx/nginx.conf" = "nginx.conf"
# ...Recommended for binary based package builds.
Optional.
Additional Docker environment variables.
Default: (empty)
Example:
[docker_env]
APPLES = "1"
BANANAS = "2"
CARROTS = "3"
# ...An array of package specifications.
Default: (empty)
Example:
[[pkg]]
image = "n4jm4/rockhopper:alpine-linux"
[[pkg]]
image = "n4jm4/rockhopper:fedora"
[[pkg]]
image = "n4jm4/rockhopper:ubuntu"
# ...Required, nonblank.
Docker image tag.
Example:
image = "n4jm4/rockhopper:ubuntuDefault: (empty)
Per-package attribute table.
Overrides the global rocklet attribute table.
Example:
[[pkg]]
image = "n4jm4/rockhopper:ubuntu"
rocklet.oci_arch = "linux/amd64"
rocklet.os_arch = "amd64"
rocklet.dependencies = "bash"
# ...Default: (DOCKER_DEFAULT_PLATFORM environment variable)
Package Docker buildx architecture.
Example:
[[pkg]]
image = "n4jm4/rockhopper:ubuntu"
rocklet.oci_arch = "linux/amd64"| ISA | oci_arch |
|---|---|
| 64-bit ARM | linux/arm64[/v8] |
| 64-bit Intel | linux/amd64 |
Nonblank.
Default: <image-architecture>
OS target architecture identifier. Syntax relative to package manager.
Example:
[[pkg]]
image = "n4jm4/rockhopper:ubuntu"
rocklet.os_arch = "amd64"| Distro Family | ISA | os_arch |
|---|---|---|
| Alpine Linux | 64-bit ARM | aarch64 |
| Alpine Linux | 64-bit Intel | x86_64 |
| Alpine Linux | (chipset independent) | noarch |
| Fedora | 64-bit ARM | aarch64 |
| Fedora | 64-bit Intel | x86_64 |
| Fedora | (chipset indepdendet) | noarch |
| FreeBSD | 64-bit ARM | freebsd:<os-version>:arm64 |
| FreeBSD | 64-bit Intel | freebsd:<os-version>:amd64 |
| FreeBSD | (chipset independent) | freebsd:<os-version>:* |
| macOS | 64-bit ARM | arm64 |
| macOS | 64-bit Intel | x86_64 |
| macOS | (chipset independent) | universal |
| NetBSD | 64-bit ARM | aarch64 |
| NetBSD | 64-bit Intel | x86_64 |
| Ubuntu | 64-bit ARM | arm64 |
| Ubuntu | 64-bit Intel | amd64 |
| Ubuntu | (chipset independent) | all |
| Windows (MSI) | 64-bit ARM | arm64 |
| Windows (MSI) | 64-bit Intel | x64 |
Note: Some platforms / package managers / package manager versions may lack support for noarch-style semantics.
Default: (empty)
Commonly required for applications large and small.
Syntax may vary by distro.
Example:
[[pkg]]
image = "n4jm4/rockhopper:ubuntu"
rocklet.dependencies = "bash"Package output directory root.
Default: /mnt/rockhopper/.rockhopper/artifacts/<distro>
Example:
[[pkg]]
image = "n4jm4/rockhopper:ubuntu"
rocklet.artifact = "/mnt/rockhopper/.rockhopper/artifacts/webuntu"Optional.
Override global rocklet dest file path map.
Default: (empty)
Example:
[[pkg]]
image = "n4jm4/rockhopper:ubuntu"
rocklet.oci_arch = "linux/amd64"
dest."usr/bin" = "bin/x86_64-unknown-linux-musl"Recommended for binary based package builds.
Some distros have limited support for mapping files with duplicate basenames (e.g., usr/share/app/LICENSE vs. usr/share/app/data/LICENSE).
When in doubt, delect unique basenames for all source media file paths.