#!/bin/bash set -e usage() { cat << EOF Usage: $0 [OPTIONS] Compare the locally built Docker image package versions against the prod image. Options: -g, --gpu Compare GPU images. EOF } BASE_IMAGE_TAG='gcr.io/kaggle-images/python:latest' TARGET_IMAGE_TAG='kaggle/python-build' while :; do case "$1" in -h|--help) usage exit ;; -g|--gpu) BASE_IMAGE_TAG='gcr.io/kaggle-private-byod/python:latest' TARGET_IMAGE_TAG='kaggle/python-gpu-build' ;; -?*) usage printf 'ERROR: Unknown option: %s\n' "$1" >&2 exit ;; *) break esac shift done readonly BASE_IMAGE_TAG readonly TARGET_IMAGE_TAG echo "Base: $BASE_IMAGE_TAG" echo "Target: $TARGET_IMAGE_TAG" docker pull "$BASE_IMAGE_TAG" CMDS=('dpkg-query --show -f "${Package}==${Version}\n"' 'pip freeze') for cmd in "${CMDS[@]}"; do echo "== Comparing $cmd ==" diff --suppress-common-lines --side-by-side \ <(docker run --rm "$BASE_IMAGE_TAG" $cmd) \ <(docker run --rm "$TARGET_IMAGE_TAG" $cmd) \ && echo 'No diff' || true done