34 lines
758 B
Plaintext
34 lines
758 B
Plaintext
|
#!/bin/bash
|
||
|
image_info () {
|
||
|
[[ $1 == "-k" ]] && key=$2 && shift 2
|
||
|
tag=$(image_name "$@")
|
||
|
# TODO try using --format to extract keys
|
||
|
# https://docs.docker.com/engine/reference/commandline/inspect/
|
||
|
info=$(docker image inspect $tag 2> /dev/null) || info=$(docker image inspect $1 2> /dev/null) || return 1
|
||
|
if [[ $key ]]; then
|
||
|
# echo image: $tag, key:$key
|
||
|
echo $info | jq --arg k "$key" '.[] | .[$k]'
|
||
|
else
|
||
|
# quote to preserve newlines
|
||
|
echo "$info"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
image_exists () {
|
||
|
image_info -k RepoTags "$@"
|
||
|
}
|
||
|
|
||
|
image_arch () {
|
||
|
image_info -k Architecture "$@"
|
||
|
}
|
||
|
|
||
|
image_tags () {
|
||
|
image_info -k RepoTags "$@"
|
||
|
}
|
||
|
|
||
|
image_id () {
|
||
|
image_info -k Id "$@" | sed 's/.*\://' | sed 's/"//'
|
||
|
}
|
||
|
|
||
|
# if script was executed then call the function
|
||
|
(return 0 2>/dev/null) || image_info $@
|