id = "podman" name = "Podman" homepage = "https://podman.io" description = "Manage containers, pods, and images with Podman." icon = "theSVG:podman" executables = ["podman"] [dotfiles] # containers.conf(5) (containers/common/docs/containers.conf.5.md), FILES: "For # user specific configuration it reads $XDG_CONFIG_HOME/containers/containers.conf # and $XDG_CONFIG_HOME/containers/containers.conf.d/*.conf files. When # $XDG_CONFIG_HOME is not set it falls back to using $HOME/.config instead." # The same page: "Rootless users can override fields in the storage config by # creating $HOME/.config/containers/storage.conf". # containers-registries.conf(5): "Container engines will use the # $HOME/.config/containers/registries.conf if it exists". # containers-policy.json(5): "The policy is read from # $XDG_CONFIG_HOME/containers/policy.json (or from # $HOME/.config/containers/policy.json if $XDG_CONFIG_HOME is unset)". # https://github.com/containers/podman/blob/main/docs/tutorials/podman-for-windows.md # names the Windows user-scope spelling: %APPDATA%\containers\containers.conf, # with drop-ins in %APPDATA%\containers\containers.conf.d. $XDG_CONFIG_HOME on # every Unix including macOS, %APPDATA% on Windows, is [configHome]. # # Listed file by file rather than as the whole containers directory: auth.json # lives there too (see secret), and so does the local podman machine state, # which is this laptop's VM, not configuration. paths = [ "[configHome]/containers/containers.conf", "[configHome]/containers/containers.conf.d/", "[configHome]/containers/storage.conf", "[configHome]/containers/registries.conf", "[configHome]/containers/policy.json", ] # containers-auth.json(5): the file `podman login` writes is # ${XDG_RUNTIME_DIR}/containers/auth.json on Linux and # $HOME/.config/containers/auth.json on Windows and macOS, and # ${XDG_CONFIG_HOME}/containers/auth.json is searched on every platform. It is # registry usernames and tokens throughout. Only the config-directory spelling # can be named here — a consumer cannot resolve $XDG_RUNTIME_DIR from this data. secret = ["[configHome]/containers/auth.json"] # storage.conf is TOML, and graphroot and runroot are absolute paths into this # machine's disk (a rootless user's ~/.local/share/containers/storage, a # system's /var/lib/containers). Podman derives them itself when they are # absent, so they must not travel. The name does not end in .toml, hence the # explicit format. # A line here is the user pointing container storage at a volume of their own, # which is exactly what they would want back when rebuilding this machine. [[dotfiles.machine_lines]] file = "[configHome]/containers/storage.conf" format = "toml" match = { key_path = ["storage.graphroot", "storage.runroot"] } scope = "backup" [commands] format = 1 label = "Podman" description = "Run, inspect, build and stop containers. Pods, machines, volumes, networks and registry login are left out." quality = "ai-draft" base = "fig:podman" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/podman.ts" license = "MIT" [[commands.subcommand]] path = ["run"] label = "Run a container" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/podman.ts" license = "MIT" [[commands.subcommand.field]] id = "image" label = "Image" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "command" label = "Command and arguments" type = "string" position = 1 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "name" label = "Name" type = "string" option = ["--name"] sources = ["fig"] [[commands.subcommand.field]] id = "detach" label = "Run in background" type = "boolean" option = ["--detach", "-d"] sources = ["fig"] [[commands.subcommand.field]] id = "rm" label = "Remove when it exits" type = "boolean" option = ["--rm"] sources = ["fig"] [[commands.subcommand.field]] id = "interactive" label = "Keep STDIN open" type = "boolean" option = ["--interactive", "-i"] sources = ["fig"] [[commands.subcommand.field]] id = "tty" label = "Allocate a TTY" type = "boolean" option = ["--tty", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "publish" label = "Publish ports" type = "string" option = ["--publish", "-p"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "volume" label = "Bind mounts" type = "string" option = ["--volume", "-v"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "env" label = "Environment variables" type = "string" option = ["--env", "-e"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "workdir" label = "Working directory" type = "string" option = ["--workdir", "-w"] sources = ["fig"] [[commands.subcommand.field]] id = "network" label = "Network" type = "string" option = ["--network"] sources = ["fig"] [[commands.subcommand.field]] id = "user" label = "User" type = "string" option = ["--user", "-u"] sources = ["fig"] [[commands.subcommand.task]] id = "interactive" label = "Interactive, removed after" set = { interactive = [true], tty = [true], rm = [true] } fields = ["image", "command", "interactive", "tty", "rm"] required = ["image"] [[commands.subcommand.task]] id = "service" label = "Background service" set = { detach = [true] } fields = ["image", "name", "detach", "publish", "volume", "env"] required = ["image"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["image", "command", "name", "detach", "rm", "interactive"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["tty", "publish", "volume", "env", "workdir", "network", "user"] [[commands.subcommand]] path = ["ps"] label = "List containers" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/podman.ts" license = "MIT" [[commands.subcommand.field]] id = "all" label = "Include stopped" type = "boolean" option = ["--all", "-a"] sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "IDs only" type = "boolean" option = ["--quiet", "-q"] sources = ["fig"] [[commands.subcommand.field]] id = "latest" label = "Latest only" type = "boolean" option = ["--latest", "-l"] sources = ["fig"] [[commands.subcommand.field]] id = "size" label = "Show sizes" type = "boolean" option = ["--size", "-s"] sources = ["fig"] [[commands.subcommand.field]] id = "no_trunc" label = "Do not truncate" type = "boolean" option = ["--no-trunc"] sources = ["fig"] [[commands.subcommand.field]] id = "filter" label = "Filter" type = "string" option = ["--filter", "-f"] sources = ["fig"] [[commands.subcommand.field]] id = "format" label = "Go template" type = "string" option = ["--format"] sources = ["fig"] [[commands.subcommand.task]] id = "ps" label = "List all" set = { all = [true] } fields = ["all", "quiet"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["all", "quiet", "latest", "size"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["no_trunc", "filter", "format"] [[commands.subcommand]] path = ["build"] label = "Build an image" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/podman.ts" license = "MIT" [[commands.subcommand.field]] id = "context" label = "Build context" type = "path" position = 0 path = { kind = "directory", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "tag" label = "Tag" type = "string" option = ["--tag", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "file" label = "Containerfile" type = "path" option = ["--file", "-f"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "no_cache" label = "No cache" type = "boolean" option = ["--no-cache"] sources = ["fig"] [[commands.subcommand.field]] id = "pull" label = "Always pull base" type = "boolean" option = ["--pull"] sources = ["fig"] [[commands.subcommand.field]] id = "platform" label = "Platform" type = "string" option = ["--platform"] sources = ["fig"] [[commands.subcommand.field]] id = "target" label = "Target stage" type = "string" option = ["--target"] sources = ["fig"] [[commands.subcommand.field]] id = "build_arg" label = "Build args" type = "string" option = ["--build-arg"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet", "-q"] sources = ["fig"] [[commands.subcommand.task]] id = "build" label = "Build and tag" fields = ["context", "tag", "file", "no_cache"] required = ["context", "tag"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["context", "tag", "file", "no_cache"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["pull", "platform", "target", "build_arg", "quiet"] [[commands.subcommand]] path = ["logs"] label = "Container logs" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/podman.ts" license = "MIT" [[commands.subcommand.field]] id = "container" label = "Container" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "follow" label = "Follow" type = "boolean" option = ["--follow", "-f"] sources = ["fig"] [[commands.subcommand.field]] id = "timestamps" label = "Timestamps" type = "boolean" option = ["--timestamps", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "since" label = "Since" type = "string" option = ["--since"] sources = ["fig"] [[commands.subcommand.field]] id = "until" label = "Until" type = "string" option = ["--until"] sources = ["fig"] [[commands.subcommand.task]] id = "follow" label = "Follow logs" set = { follow = [true] } fields = ["container", "follow", "timestamps"] required = ["container"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["container", "follow", "timestamps", "since", "until"] [[commands.subcommand]] path = ["exec"] label = "Exec in a container" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/podman.ts" license = "MIT" [[commands.subcommand.field]] id = "container" label = "Container" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "command" label = "Command and arguments" type = "string" position = 1 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "interactive" label = "Keep STDIN open" type = "boolean" option = ["--interactive", "-i"] sources = ["fig"] [[commands.subcommand.field]] id = "tty" label = "Allocate a TTY" type = "boolean" option = ["--tty", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "env" label = "Environment variables" type = "string" option = ["--env", "-e"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "workdir" label = "Working directory" type = "string" option = ["--workdir", "-w"] sources = ["fig"] [[commands.subcommand.task]] id = "shell" label = "Interactive command" set = { interactive = [true], tty = [true] } fields = ["container", "command", "interactive", "tty", "env", "workdir"] required = ["container", "command"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["container", "command", "interactive", "tty", "env"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["workdir"] [[commands.subcommand]] path = ["stop"] label = "Stop containers" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/podman.ts" license = "MIT" [[commands.subcommand.field]] id = "containers" label = "Containers" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "time" label = "Seconds before kill" type = "integer" option = ["-t"] sources = ["fig"] [[commands.subcommand.task]] id = "stop" label = "Stop" fields = ["containers", "time"] required = ["containers"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["containers", "time"]