From 4c420c3cf4786fcb3cb3e5b49f93fbf6b2f2ee3b Mon Sep 17 00:00:00 2001 From: infogulch Date: Mon, 26 Apr 2021 16:14:28 -0500 Subject: [PATCH] Add initial desired README.md --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..9db673b --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# Docker Artifact + +> Use docker image labels to identify which image layer contains a particular file, enabling retrieving just that file (well, the layer the file is in) from the image without needing to download the whole image. + +## Setup + +### Prerequisites + +Requires the `jq` and `curl` programs to be installed on your PATH. + +### Installation + +Download `docker-artifact.sh` file from this repository and install it at `~/.docker/cli-plugins/docker-artifact` (note the lack of `.sh` suffix) with execute permissions. Validate correct installation by observing the `artifact` command listed in `docker help`. + +-OR- + +Run the following command in your shell: + +```bash +mkdir -p ~/.docker/cli-plugins && \ + curl https://raw.githubusercontent.com/infogulch/docker-artifact/master/docker-artifact.sh > ~/.docker/cli-plugins/docker-artifact && \ + chmod +x ~/.docker/cli-plugins/docker-artifact && \ + docker help | grep artifact > /dev/null && echo "Docker artifact install succeeded!" || echo "Docker artifact install failed :(" +``` + +## Usage + +`docker artifact label [image] [file-path-1] [file-path-2] ...` + +Adds labels to an existing image enabling the `download` command below to pull just the layers that contain the file paths specified above. + +Note: `download` must download the whole layer; to optimize for artifact download size, add the target files to the image in a separate layer. + +`docker artifact download [image] [file-path-1] [file-path-2]` + +Downloads the image layers associated with the file paths specified and extracts them into the current directory. + +## See also + +Related to [timwillfixit's original `docker-artifact`](https://github.com/tomwillfixit/docker-artifact) in spirit, though not in history. The primary difference is that this uses a more precice strategy to search for files. +