mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 20:37:59 +00:00 
			
		
		
		
	Remove the image and the intermediate images. Otherwise, especially for the initial runs, the disk fills up quickly. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #! /bin/sh
 | |
| 
 | |
| REPO="linuxkit/kernel-mainline"
 | |
| BASE_URL=http://kernel.ubuntu.com/~kernel-ppa/mainline
 | |
| 
 | |
| TAGS=$(curl --silent -f -lSL https://registry.hub.docker.com/v1/repositories/${REPO}/tags)
 | |
| 
 | |
| build_image() {
 | |
|     VERSION=$1
 | |
|     KDIR=$2
 | |
|     ARCH=amd64
 | |
| 
 | |
|     LINKS=$(curl -s ${BASE_URL}/${KDIR}/ | \
 | |
|                 sed -n 's/.*href="\([^"]*\).*/\1/p')
 | |
| 
 | |
|     IMAGE=$(echo $LINKS | \
 | |
|             grep -o "linux-image[^ ]\+-generic[^ ]\+${ARCH}.deb" | head -1)
 | |
|     [ -z "${IMAGE}" ] && return 1
 | |
|     HDR_GEN=$(echo $LINKS | grep -o "linux-headers[^ ]\+_all.deb" | head -1)
 | |
|     [ -z "${HDR_GEN}" ] && return 1
 | |
|     HDR_ARCH=$(echo $LINKS | \
 | |
|                grep -o "linux-headers[^ ]\+-generic[^ ]\+${ARCH}.deb" | head -1)
 | |
|     [ -z "${HDR_ARCH}" ] && return 1
 | |
| 
 | |
|     DEB_URL=${BASE_URL}/${KDIR}/${IMAGE}
 | |
|     HDR_GEN_URL=${BASE_URL}/${KDIR}/${HDR_GEN}
 | |
|     HDR_ARCH_URL=${BASE_URL}/${KDIR}/${HDR_ARCH}
 | |
|     echo "Trying to fetch ${VERSION} from ${DEB_URL}"
 | |
| 
 | |
|     docker build -t ${REPO}:${VERSION} -f Dockerfile.deb --no-cache \
 | |
|            --build-arg DEB_URLS="${DEB_URL} ${HDR_GEN_URL} ${HDR_ARCH_URL}" .
 | |
| }
 | |
| 
 | |
| LINKS=$(curl -s ${BASE_URL}/ | sed -n 's/.*href="\([^"]*\).*/\1/p')
 | |
| # Extract all kernel versions (drop RCs, ckt(?) and other links)
 | |
| VERSIONS=$(echo $LINKS | grep -o "v[0-9]\+\.[0-9]\+\.[0-9]\+[^ ]*" | \
 | |
|            grep -ve '-rc' | grep -ve '-ckt' | uniq)
 | |
| 
 | |
| # Extract 3.16.x and 4.x.x
 | |
| THREES=$(echo $VERSIONS | grep -o "v3\.16\.[0-9]\+[^ ]*")
 | |
| FOURS=$(echo $VERSIONS | grep -o "v4\.[0-9]\+\.[0-9]\+[^ ]*")
 | |
| KDIRS="${THREES} ${FOURS}"
 | |
| 
 | |
| for KDIR in $KDIRS; do
 | |
|     # Strip the Ubuntu release name for the tag and also the 'v' like with
 | |
|     # the other kernel packages
 | |
|     VERSION=$(echo $KDIR | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+")
 | |
|     if echo $TAGS | grep -q "\"${VERSION}\""; then
 | |
|         echo "${REPO}:${VERSION} exists"
 | |
|         continue
 | |
|     fi
 | |
|     build_image ${VERSION} ${KDIR} && \
 | |
|         DOCKER_CONTENT_TRUST=1 docker push ${REPO}:${VERSION}
 | |
| 
 | |
|     docker rmi ${REPO}:${VERSION}
 | |
|     docker system prune -f
 | |
| done
 |