alpine-cli/README.md

85 lines
1.9 KiB
Markdown

# alpine-cli
A minimal image for running Linux CLI utilities - shell scripts and similar.
This is useful for interactive purposes or as the basis for other utility
images.
* [Quickstart](#quickstart)
* [More Info](#more-info)
* [Available Images](#available-images)
* [Helper Script](#helper-script)
* [License](#license)
## Quickstart
```console
$ docker run -ti --rm ghcr.io/jswank/alpine-cli
~ $ ^D
exit
$ bin/cli
~ $ ^D
exit
```
## More Info
The image is based on *alpine:3*, with a small amount of additional
setup/installation done. See the [Dockerfile](Dockerfile) and [ctx/home](ctx)
for the specifics.
- Some basic utilities are installed for interative and script-based shell usage
- A user is created with sudo (`-u root`) access.
- A few personal preferences are enabled via dotfiles.
## Available Images
See ghcr.io/jswank/alpine-cli for current available images.
## Helper Script
A helper script, using [casey/just](https://github.com/casey/just') is in
[bin/cli](bin/cli). It can be used to quickly start an ephemeral (or
persistent) container.
```console
$ bin/cli help
Available recipes:
clean # Remove the persistent container
default # Invoke the 'run' recipe
help recipe="help" # Display this listing. Detailed help is available with 'help recipe_name'.
persist # Run (or attach to) a persistent container
pull # Pull the latest version of the image
restart # Remove a running container, and run the default recipe
run # Run an ephemeral container.
save i=image # Save the running container as a new image
$ bin/cli
~ $ ^D
exit
$ bin/cli persist
~ $ ls
~ $
exit
$ podman cp foo.json cli:/home/cli # copy a file to the persistent container
$ bin/cli persist
~ $ ls
foo.json
~ $ ^D
exit
```
Bonus - the same script could be used to start other containers:
```console
$ bin/cli image=alpine:latest
/ # ^D
```
## License
MIT