[Request]: Clean up help for complex commands.
Feature or enhancement request details
Help output for commands is a bit hectic. We should go through each command and make sure that help output is well organized and easy to scan and understand.
We also need a way to document complex option values (e.g. --publish) without cluttering things.
Worst-case example:
% container run --help Warning! Running debug build. Performance may be degraded. OVERVIEW: Run a container USAGE: container run [<options>] <image> [<arguments> ...] ARGUMENTS: <image> Image name <arguments> Container init process arguments OPTIONS: -w, --cwd, --workdir <cwd> Current working directory for the container -e, --env <env> Set environment variables --env-file <env-file> Read in a file of environment variables --uid <uid> Set the uid for the process --gid <gid> Set the gid for the process -i, --interactive Keep Stdin open even if not attached -t, --tty Open a tty with the process -u, --user <user> Set the user for the process -c, --cpus <cpus> Number of CPUs to allocate to the container -m, --memory <memory> Amount of memory in bytes, kilobytes (K), megabytes (M), or gigabytes (G) for the container, with MB granularity (for example, 1024K will result in 1MB being allocated for the container) -d, --detach Run the container and detach from the process --entrypoint <entrypoint> Override the entrypoint of the image --mount <mount> Add a mount to the container (type=<>,source=<>,target=<>,readonly) -p, --publish <publish> Publish a port from container to host (format: [host-ip:]host-port:container-port[/protocol]) --publish-socket <publish-socket> Publish a socket from container to host (format: host_path:container_path) --tmpfs <tmpfs> Add a tmpfs mount to the container at the given path --name <name> Assign a name to the container. If excluded will be a generated UUID --remove, --rm Remove the container after it stops --os <os> Set OS if image can target multiple operating systems (default: linux) -a, --arch <arch> Set arch if image can target multiple architectures (default: arm64) -v, --volume <volume> Bind mount a volume into the container -k, --kernel <kernel> Set a custom kernel path --network <network> Attach the container to a network --cidfile <cidfile> Write the container ID to the path provided --no-dns Do not configure DNS in the container --dns <dns> DNS nameserver IP address --dns-domain <dns-domain> Default DNS domain --dns-search <dns-search> DNS search domains --dns-option <dns-option> DNS options -l, --label <label> Add a key=value label to the container --virtualization Expose virtualization capabilities to the container. (Host must have nested virtualization support, and guest kernel must have virtualization capabilities enabled) --ssh Forward SSH agent socket to container --scheme <scheme> Scheme to use when connecting to the container registry. One of (http, https, auto) (default: auto) --debug Enable debug output [environment: CONTAINER_DEBUG] --disable-progress-updates Disable progress bar updates --version Show the version. -h, --help Show help information.
Code of Conduct
- I agree to follow this project's Code of Conduct