@@ -7,11 +7,13 @@ Usage: $0 [OPTIONS] [LABEL]
7
7
Push a newly-built image with the given LABEL to gcr.io and DockerHub.
8
8
9
9
Options:
10
- -g, --gpu Push the image with GPU support.
10
+ -g, --gpu Push the image with GPU support.
11
+ -s, --source-image IMAGE Tag for the source image.
11
12
EOF
12
13
}
13
14
14
- SOURCE_IMAGE=' kaggle/python-build'
15
+ SOURCE_IMAGE_TAG=' kaggle/python-build:latest'
16
+ SOURCE_IMAGE_TAG_OVERRIDE=' '
15
17
TARGET_IMAGE=' gcr.io/kaggle-images/python'
16
18
17
19
while : ; do
@@ -21,9 +23,18 @@ while :; do
21
23
exit
22
24
;;
23
25
-g|--gpu)
24
- SOURCE_IMAGE =' kaggle/python-gpu-build'
26
+ SOURCE_IMAGE_TAG =' kaggle/python-gpu-build:latest '
25
27
TARGET_IMAGE=' gcr.io/kaggle-private-byod/python'
26
28
;;
29
+ -s|--source-image)
30
+ if [[ -z $2 ]]; then
31
+ usage
32
+ printf ' ERROR: No IMAGE specified after the %s flag.\n' " $1 " >&2
33
+ exit
34
+ fi
35
+ SOURCE_IMAGE_TAG_OVERRIDE=$2
36
+ shift # skip the flag value
37
+ ;;
27
38
-?* )
28
39
usage
29
40
printf ' ERROR: Unknown option: %s\n' " $1 " >&2
38
49
39
50
LABEL=${1:- testing}
40
51
41
- readonly SOURCE_IMAGE
52
+ if [[ -n " $SOURCE_IMAGE_TAG_OVERRIDE " ]]; then
53
+ SOURCE_IMAGE_TAG=" $SOURCE_IMAGE_TAG_OVERRIDE "
54
+ fi
55
+
56
+ readonly SOURCE_IMAGE_TAG
42
57
readonly TARGET_IMAGE
43
58
readonly LABEL
44
59
45
60
set -x
46
- docker tag " ${SOURCE_IMAGE} :latest " " ${TARGET_IMAGE} :${LABEL} "
61
+ docker tag " ${SOURCE_IMAGE_TAG} " " ${TARGET_IMAGE} :${LABEL} "
47
62
gcloud docker -- push " ${TARGET_IMAGE} :${LABEL} "
48
-
49
- # Only CPU images are made public at this time.
50
- if [[ " $LABEL " == " latest" && SOURCE_IMAGE = " kaggle/python-build" ]]; then
51
- docker tag " ${SOURCE_IMAGE} :latest" " kaggle/python:${LABEL} "
52
- docker push " kaggle/python:${LABEL} "
53
- fi
0 commit comments