diff options
author | Paul Spooren <mail@aparcar.org> | 2021-02-21 10:26:52 +0300 |
---|---|---|
committer | Paul Spooren <mail@aparcar.org> | 2021-02-21 13:24:47 +0300 |
commit | b957aa4cee295eea322f862b4bae54fd9962a2f5 (patch) | |
tree | fde4a1cdc484721f54637c8fe9779dc0d993007f | |
parent | ee86c7850061a82c0e4066f51ddf6e5ba895ef5a (diff) |
support multiple image names
This simplifies migration from one image name to another. In this case
we migrate from `openwrtorg` username to `openwrt`, so for a while both
should be available.
Signed-off-by: Paul Spooren <mail@aparcar.org>
-rwxr-xr-x | docker-build.sh | 43 | ||||
-rwxr-xr-x | docker-sdk.sh | 38 |
2 files changed, 48 insertions, 33 deletions
diff --git a/docker-build.sh b/docker-build.sh index 20f09e3..37a0740 100755 --- a/docker-build.sh +++ b/docker-build.sh @@ -6,28 +6,35 @@ DOCKERFILE="${DOCKERFILE:-Dockerfile}" # Copy Dockerfile inside build context to support older Docker versions # See https://github.com/docker/cli/pull/886 cp "$DOCKERFILE" ./build/ -docker build -t "$DOCKER_IMAGE:$TARGET-$VERSION" -f "./build/$DOCKERFILE" ./build +TMP_IMAGE_NAME=$(tr -dc '[:lower:]' < /dev/urandom | fold -w 32 | head -n 1) +docker build -t "$TMP_IMAGE_NAME" -f "./build/$DOCKERFILE" ./build -if [ -n "$ARCH" ]; then - docker tag "$DOCKER_IMAGE:$TARGET-$VERSION" "$DOCKER_IMAGE:$ARCH-$VERSION" -fi +for IMAGE in $DOCKER_IMAGE; do + docker tag "$TMP_IMAGE_NAME" "$IMAGE:$TARGET-$VERSION" -if [ "$VERSION" == "snapshot" ]; then - docker tag "$DOCKER_IMAGE:$TARGET-$VERSION" "$DOCKER_IMAGE:$TARGET-$BRANCH" + if [ -n "$ARCH" ]; then + docker tag "$IMAGE:$TARGET-$VERSION" "$IMAGE:$ARCH-$VERSION" + fi - if [ -n "$ARCH" ]; then - docker tag "$DOCKER_IMAGE:$TARGET-$VERSION" "$DOCKER_IMAGE:$ARCH" - fi - docker tag "$DOCKER_IMAGE:$TARGET-$VERSION" "$DOCKER_IMAGE:$TARGET" + if [ "$VERSION" == "snapshot" ]; then + docker tag "$IMAGE:$TARGET-$VERSION" "$IMAGE:$TARGET-$BRANCH" - if [ "$TARGET" == "x86-64" ]; then - docker tag "$DOCKER_IMAGE:$TARGET-$VERSION" "$DOCKER_IMAGE:$BRANCH" - docker tag "$DOCKER_IMAGE:$TARGET-$VERSION" "$DOCKER_IMAGE:latest" - fi -fi + if [ -n "$ARCH" ]; then + docker tag "$IMAGE:$TARGET-$VERSION" "$IMAGE:$ARCH" + fi + docker tag "$IMAGE:$TARGET-$VERSION" "$IMAGE:$TARGET" -if [ "$TARGET" == "x86-64" ]; then - docker tag "$DOCKER_IMAGE:$TARGET-$VERSION" "$DOCKER_IMAGE:$VERSION" -fi + if [ "$TARGET" == "x86-64" ]; then + docker tag "$IMAGE:$TARGET-$VERSION" "$IMAGE:$BRANCH" + docker tag "$IMAGE:$TARGET-$VERSION" "$IMAGE:latest" + fi + fi + + if [ "$TARGET" == "x86-64" ]; then + docker tag "$IMAGE:$TARGET-$VERSION" "$IMAGE:$VERSION" + fi +done + +docker rmi "$TMP_IMAGE_NAME" rm -rf ./build diff --git a/docker-sdk.sh b/docker-sdk.sh index bb812b6..366cd07 100755 --- a/docker-sdk.sh +++ b/docker-sdk.sh @@ -33,25 +33,33 @@ DOCKERFILE="${DOCKERFILE:-Dockerfile}" # Copy Dockerfile inside build context to support older Docker versions # See https://github.com/docker/cli/pull/886 cp "$DOCKERFILE" ./build/ -docker build -t "$DOCKER_IMAGE:$ARCH-$VERSION" -f "./build/$DOCKERFILE" ./build -if [ "$VERSION" == "snapshot" ]; then - docker tag "$DOCKER_IMAGE:$ARCH-$VERSION" "$DOCKER_IMAGE:$ARCH-$BRANCH" +TMP_IMAGE_NAME=$(tr -dc '[:lower:]' < /dev/urandom | fold -w 32 | head -n 1) +docker build -t "$TMP_IMAGE_NAME" -f "./build/$DOCKERFILE" ./build - docker tag "$DOCKER_IMAGE:$ARCH-$VERSION" "$DOCKER_IMAGE:$ARCH" - if [ "$ARCH" == "x86_64" ]; then - docker tag "$DOCKER_IMAGE:$ARCH-$VERSION" "$DOCKER_IMAGE:$BRANCH" - docker tag "$DOCKER_IMAGE:$ARCH-$VERSION" "$DOCKER_IMAGE:latest" - fi -fi +for IMAGE in $DOCKER_IMAGE; do + docker tag "$TMP_IMAGE_NAME" "$IMAGE:$ARCH-$VERSION" -if [ "$ARCH" == "x86_64" ]; then - docker tag "$DOCKER_IMAGE:$ARCH-$VERSION" "$DOCKER_IMAGE:$VERSION" -fi + if [ "$VERSION" == "snapshot" ]; then + docker tag "$IMAGE:$ARCH-$VERSION" "$IMAGE:$ARCH-$BRANCH" -for TARGET_TAG in $TARGETS; do - TARGET_TAG=$(echo "$TARGET_TAG" | tr '/' '-') - docker tag "$DOCKER_IMAGE:$ARCH-$VERSION" "$DOCKER_IMAGE:$TARGET_TAG-$VERSION" + docker tag "$IMAGE:$ARCH-$VERSION" "$IMAGE:$ARCH" + if [ "$ARCH" == "x86_64" ]; then + docker tag "$IMAGE:$ARCH-$VERSION" "$IMAGE:$BRANCH" + docker tag "$IMAGE:$ARCH-$VERSION" "$IMAGE:latest" + fi + fi + + if [ "$ARCH" == "x86_64" ]; then + docker tag "$IMAGE:$ARCH-$VERSION" "$IMAGE:$VERSION" + fi + + for TARGET_TAG in $TARGETS; do + TARGET_TAG=$(echo "$TARGET_TAG" | tr '/' '-') + docker tag "$IMAGE:$ARCH-$VERSION" "$IMAGE:$TARGET_TAG-$VERSION" + done done +docker rmi "$TMP_IMAGE_NAME" + rm -rf ./build |