fix Dockerfile.zefie, add docker.sh helper
This commit is contained in:
1 parent
dc8b55b2b7
commit
31aede5014
2 files changed
+63
-5
No files matched your search
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
DOCKER_IMAGE="zefie/llvm-mingw"
|
||||
CURDIR="$(realpath "$(dirname "${0}")")"
|
||||
|
||||
get_latest() {
|
||||
# Find all tags for ${DOCKER_IMAGE}, sort by creation timestamp (descending), return the newest
|
||||
latest_image=$(docker images --format '{{.CreatedAt}}\t{{.Repository}}:{{.Tag}}' ${DOCKER_IMAGE} \
|
||||
| sort -r \
|
||||
| cut -f2- \
|
||||
| grep -v latest \
|
||||
| head -n 1)
|
||||
|
||||
if [[ -z "$latest_image" ]]; then
|
||||
echo "No images found for repository '${DOCKER_IMAGE}'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$latest_image"
|
||||
}
|
||||
|
||||
if [ "${1}" == "build" ]; then
|
||||
THETAG=$(date +%Y%m%d)
|
||||
cd "$(realpath "$(dirname "${0}")")"
|
||||
docker buildx build --tag "${DOCKER_IMAGE}:${THETAG}" .
|
||||
elif [ "${1}" == "mklatest" ]; then
|
||||
LATEST=$(get_latest)
|
||||
if [ -z "${LATEST}" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
docker tag "${LATEST}" ${DOCKER_IMAGE}:latest
|
||||
echo "Set ${DOCKER_IMAGE}:latest to ${LATEST}"
|
||||
elif [ "${1}" == "run" ]; then
|
||||
shift
|
||||
IMAGE=$(get_latest)
|
||||
if [ -z "${IMAGE}" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
export EMBEDDED=1
|
||||
CMD=(docker run --rm -it "${IMAGE}" "${@}")
|
||||
echo "Executing ${CMD[@]}"
|
||||
"${CMD[@]}"
|
||||
elif [ "${1}" == "push" ]; then
|
||||
# push dated one first, then latest
|
||||
"${0}" mklatest
|
||||
IMAGE=$(get_latest)
|
||||
echo "Pushing ${IMAGE}"
|
||||
docker push "${IMAGE}"
|
||||
echo "Pushing ${DOCKER_IMAGE}:latest"
|
||||
docker push "${DOCKER_IMAGE}:latest"
|
||||
else
|
||||
echo "Usage: ${0} [build|run|mklatest]"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
Reference in new issue
Block a user