#! /usr/bin/env bash # COPYRIGHT NOTICE STARTS HERE # # Copyright 2018 © Samsung Electronics Co., Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # COPYRIGHT NOTICE ENDS HERE # boilerplate RELATIVE_PATH=../ # relative path from this script to 'common-functions.sh' if [ "$IS_COMMON_FUNCTIONS_SOURCED" != YES ] ; then SCRIPT_DIR=$(dirname "${0}") LOCAL_PATH=$(readlink -f "$SCRIPT_DIR") . "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh fi IMG_DIR="$1" if [[ -z "$IMG_DIR" ]]; then IMG_DIR="./images" fi echo "Creating ${IMG_DIR}" if [[ ! -d "${IMG_DIR}" ]]; then mkdir -p "${IMG_DIR}" fi save_image() { local name_tag=$1 echo "$name_tag" local img_name=$(echo "${name_tag}" | tr /: __) local img_path="${IMG_DIR}/${img_name}.tar" if [[ ! -f "${img_path}" ]] ; then echo "[DEBUG] save ${name_tag} to ${img_path}" echo "${name_tag}" >> $IMG_DIR/_image_list.txt retry docker -l error save -o "${img_path}" ${name_tag} else echo "[DEBUG] ${name_tag} already saved" fi } echo "Save all images" line=1 lines=$(docker images|grep -v 'IMAGE ID'|wc -l) while read -r image; do echo "== pkg #$line of $lines ==" name=$(echo $image|awk '{print $1}') tag=$(echo $image|awk '{print $2}') save_image "$name:$tag" line=$((line+1)) done <<< "$(docker images|grep -v 'IMAGE ID'|awk '{printf("%s %s\n", $1, $2)}'|column -t)"