Everyday tools
Functions of the tools module at v0.7.0. Each returns what a command runs in; import it with import * as tools from "tools".
unix.env
A shell with the everyday command-line tools, in one image.
unix.env(
--base_access: String | Map<String> | Null = null,
--with: Array<Record<env: Map<String>, volumes: Array<String>>> = [],
--extra_env: Map<String> = {}
): RunnableA command string runs in one environment, so curl -s ... | jq -r .id needs curl and jq in the same image; this is that image. It holds bash, curl, wget, openssl, jq, yq, envsubst, GNU coreutils, findutils, grep, sed and awk, diff, file, tar, gzip, xz, bzip2, zip and unzip, rsync, make, and the SSH client; and git, gh and glab, which git.env(), gh.env() and glab.env() configure.
The image is built from lib/images/unix/Dockerfile, Alpine 3.24 pinned by its digest, so it takes no --image: the recipe is what fixes it, and lask sync builds it once per machine (lask spec 10.3). A run never builds.
Parameters
--base_accessWhat the container may do with the project directory: "rw" (the default), "ro", "none", or a table of paths such as {".": "ro", "dist": "rw"} (lask spec 10.2).--withSetups of other tools this environment should also carry.--extra_envAny other variable, e.g. HTTPS_PROXY; below --with.
Returns Runnable: The environment, for command { "curl" } on ... or $[...].
Image recipe lib/images/unix/Dockerfile
Command words bzip2, curl, envsubst, gzip, jq, openssl, rsync, tar, unzip, wget, xz, yq, zip: import command { "bzip2", "curl", "envsubst", "gzip", "jq", "openssl", "rsync", "tar", "unzip", "wget", "xz", "yq", "zip" } from "tools"
lask eval unix.env