docker/docker-rootfs.sh

41 lines
1.4 KiB
Bash

#!/bin/sh
TARGETS="${TARGETS:-x86-64}"
BRANCHES="${BRANCHES:-master}"
DOCKER_IMAGE="${DOCKER_IMAGE:-openwrt-rootfs}"
for TARGET in $TARGETS ; do
export ROOTFS_FILE="openwrt-*-rootfs.tar.gz"
for BRANCH in $BRANCHES; do
export ROOTFS_PATH="snapshots/targets/$(echo $TARGET | tr '-' '/')"
# download and verify checksums
curl "https://downloads.openwrt.org/$ROOTFS_PATH/sha256sums" -sS -o sha256sums
curl "https://downloads.openwrt.org/$ROOTFS_PATH/sha256sums.asc" -sS -o sha256sums.asc
gpg --with-fingerprint --verify sha256sums.asc sha256sums
# download file or skip if not available
rsync -av "downloads.openwrt.org::downloads/$ROOTFS_PATH/$ROOTFS_FILE" . || contine
# shrink checksum file to single desired file and verify downloaded archive
cat sha256sums | grep generic-rootfs > sha256sums_rootfs
sha256sum -c sha256sums_rootfs
mkdir -p ./rootfs-openwrt
tar xzf $ROOTFS_FILE -C ./rootfs-openwrt
rm -rf $ROOTFS_FILE
docker build -t $DOCKER_IMAGE:$TARGET-$BRANCH -f Dockerfile.rootfs .
rm -rf ./rootfs-openwrt
# snapshot don't get master attached to tag
if [ "$BRANCH" == "master" ]; then
docker tag $DOCKER_IMAGE:$TARGET-$BRANCH $DOCKER_IMAGE:$TARGET
docker push $DOCKER_IMAGE:$TARGET
else
docker push $DOCKER_IMAGE:$TARGET-$BRANCH
fi
done
done