| 
									
										
										
										
											2020-07-13 17:16:19 -07:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | set -e | 
					
						
							|  |  |  | set +x | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # This script computes **compressed image size with all its layers**. | 
					
						
							|  |  |  | # This solution is based on https://stackoverflow.com/a/55156181/314883 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-17 16:51:39 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | if [[ ($1 == '--help') || ($1 == '-h') ]]; then | 
					
						
							|  |  |  |   echo "usage: $(basename $0) [--image-name <local image to compute size>]" | 
					
						
							|  |  |  |   echo | 
					
						
							|  |  |  |   echo "Compute docker image size defined by the 'Dockerfile.bionic'." | 
					
						
							|  |  |  |   echo "" | 
					
						
							|  |  |  |   echo "Script will build the image using 'build.sh', unless '--image-name'" | 
					
						
							|  |  |  |   echo "is specified." | 
					
						
							|  |  |  |   echo "" | 
					
						
							|  |  |  |   echo "NOTE: this requires on Playwright dependencies to be installed with 'npm install'" | 
					
						
							|  |  |  |   echo "      and Playwright itself being built with 'npm run build'" | 
					
						
							|  |  |  |   echo | 
					
						
							|  |  |  |   echo "  --image-name    custom image name to compute size of." | 
					
						
							|  |  |  |   echo "" | 
					
						
							|  |  |  |   exit 0 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CUSTOM_IMAGE_NAME="" | 
					
						
							|  |  |  | if [[ $1 == "--image-name" ]]; then | 
					
						
							|  |  |  |   CUSTOM_IMAGE_NAME=$2 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TMP_IMAGE_NAME="docker-image-to-count-compressed-size" | 
					
						
							| 
									
										
										
										
											2020-07-13 17:16:19 -07:00
										 |  |  | FILE_NAME="docker-image-to-count-compressed-size" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function cleanup() { | 
					
						
							|  |  |  |   rm -f "${FILE_NAME}.tar" | 
					
						
							|  |  |  |   rm -f "${FILE_NAME}.tar.gz" | 
					
						
							| 
									
										
										
										
											2020-07-17 16:51:39 -07:00
										 |  |  |   docker rmi "${TMP_IMAGE_NAME}:bionic" >/dev/null | 
					
						
							| 
									
										
										
										
											2020-07-13 17:16:19 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | trap "cleanup; cd $(pwd -P)" EXIT | 
					
						
							|  |  |  | cd "$(dirname "$0")" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-17 16:51:39 -07:00
										 |  |  | if [[ -z "${CUSTOM_IMAGE_NAME}" ]]; then | 
					
						
							|  |  |  |   echo "-- Building image..." | 
					
						
							|  |  |  |   ./build.sh >/dev/null | 
					
						
							|  |  |  |   echo "-- Saving .tar of the image..." | 
					
						
							|  |  |  |   docker save "${TMP_IMAGE_NAME}:bionic" > "${FILE_NAME}.tar" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   echo "-- Saving .tar of the image..." | 
					
						
							|  |  |  |   docker save "${CUSTOM_IMAGE_NAME}" > "${FILE_NAME}.tar" | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2020-07-13 17:16:19 -07:00
										 |  |  | echo "-- Compressing image..." | 
					
						
							|  |  |  | gzip "${FILE_NAME}.tar" >/dev/null | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "(generated with docker-image-size.sh)" > CURRENT_DOCKER_IMAGE_SIZE | 
					
						
							|  |  |  | du -sh ${FILE_NAME}.tar.gz | cut -f1 | xargs >> CURRENT_DOCKER_IMAGE_SIZE | 
					
						
							|  |  |  | 
 |