43 lines
1.1 KiB
Bash
Executable File
43 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Usage: ./app-version.sh <image> <service>
|
|
# Example: ./app-version.sh drone/drone:1.10.1 app
|
|
#
|
|
# Accepts a full format hub.docker.com image tag which it pulls locally and
|
|
# generates output which can be used to put in the abra.sh for app packaging.
|
|
# Requires the yq program https://mikefarah.gitbook.io/yq/
|
|
|
|
error() {
|
|
echo "$(tput setaf 1)ERROR: $*$(tput sgr0)"
|
|
exit 1
|
|
}
|
|
|
|
IMAGE="$1"
|
|
SERVICE="$2"
|
|
|
|
if ! docker pull -q "$IMAGE" > /dev/null 2>&1; then
|
|
error "Failed to download image, is the tag correct?"
|
|
fi
|
|
|
|
version=$(echo "$IMAGE" | cut -d ':' -f2)
|
|
digest=$(docker image inspect -f "{{.Id}}" "$IMAGE" | cut -d ':' -f2- | cut -c 1-8)
|
|
|
|
echo "--- Add the following to your abra.sh ---"
|
|
echo "export ABRA_TYPE_${SERVICE^^}_VERSION=${version}"
|
|
echo "export ABRA_TYPE_${SERVICE^^}_DIGEST=${digest}"
|
|
|
|
version_lookup="ABRA_TYPE_${SERVICE^^}_VERSION"
|
|
digest_lookup="ABRA_TYPE_${SERVICE^^}_DIGEST"
|
|
|
|
label='- "coop-cloud.${STACK_NAME}.'
|
|
label+="${SERVICE}"
|
|
label+='.version=${'
|
|
label+="${version_lookup}"
|
|
label+='}-${'
|
|
label+="${digest_lookup}"
|
|
label+='}'
|
|
|
|
echo
|
|
echo "--- And don't forget to label the actual service in the compose file ---"
|
|
echo "$label"
|