FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Make our helper scripts more robus · HpcDataLab/docker-python@408cc24 · GitHub

Repository navigation

Commit 408cc24

Browse files
committed
Make our helper scripts more robus
1 parent 6cfb569 commit 408cc24

3 files changed

Lines changed: 117 additions & 50 deletions

File tree

‎build‎

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,49 @@
11
#!/bin/bash
2-
#
3-
# Build a new Python Docker image.
4-
#
5-
# Usage:
6-
# ./build [--gpu] [--use-cache]
7-
#
8-
# Options:
9-
# --gpu: Build an image with GPU support.
10-
# --use-cache: Use layer cache when building a new image.
11-
#
122
set -e
13-
set -x
3+
4+
usage() {
5+
cat << EOF
6+
Usage: $0 [OPTIONS]
7+
Build a new Python Docker image.
8+
9+
Options:
10+
-g, --gpu Build an image with GPU support.
11+
-c, --use-cache Use layer cache when building a new image.
12+
EOF
13+
}
1414

1515
CACHE_FLAG="--no-cache"
16-
IMAGE_TAG="kaggle/python-build"
1716
DOCKERFILE="Dockerfile"
17+
IMAGE_TAG="kaggle/python-build"
18+
19+
while :; do
20+
case "$1" in
21+
-h|--help)
22+
usage
23+
exit
24+
;;
25+
-g|--gpu)
26+
IMAGE_TAG="kaggle/python-gpu-build"
27+
DOCKERFILE="gpu.Dockerfile"
28+
;;
29+
-c|--use-cache)
30+
CACHE_FLAG=""
31+
;;
32+
-?*)
33+
usage
34+
printf 'ERROR: Unknown option: %s\n' "$1" >&2
35+
exit
36+
;;
37+
*)
38+
break
39+
esac
1840

19-
if [[ "$1" == "--gpu" ]]; then
20-
IMAGE_TAG="kaggle/python-gpu-build"
21-
DOCKERFILE="gpu.Dockerfile"
2241
shift
23-
fi
42+
done
2443

25-
if [[ "$1" == "--use-cache" ]]; then
26-
CACHE_FLAG=""
27-
fi
44+
readonly CACHE_FLAG
45+
readonly DOCKERFILE
46+
readonly IMAGE_TAG
2847

29-
docker build --rm $CACHE_FLAG -t $IMAGE_TAG -f $DOCKERFILE .
48+
set -x
49+
docker build --rm $CACHE_FLAG -t "$IMAGE_TAG" -f "$DOCKERFILE" .

‎push‎

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,53 @@
11
#!/bin/bash
2-
#
3-
# Push a newly-built image with the given label to gcr.io and DockerHub.
4-
#
5-
# Usage:
6-
# ./push [--gpu] [LABEL]
7-
#
8-
# Description:
9-
# LABEL: Docker image label. Defaults to "testing".
10-
#
11-
# Options:
12-
# --gpu: Psuh the image with GPU support.
13-
#
142
set -e
15-
set -x
3+
4+
usage() {
5+
cat << EOF
6+
Usage: $0 [OPTIONS] [LABEL]
7+
Push a newly-built image with the given LABEL to gcr.io and DockerHub.
8+
9+
Options:
10+
-g, --gpu Push the image with GPU support.
11+
EOF
12+
}
1613

1714
SOURCE_IMAGE="kaggle/python-build"
1815
TARGET_IMAGE="gcr.io/kaggle-images/python"
1916

20-
if [[ "$1" == "--gpu" ]]; then
21-
SOURCE_IMAGE="kaggle/python-gpu-build"
22-
TARGET_IMAGE="gcr.io/kaggle-private-byod/python"
17+
while :; do
18+
case "$1" in
19+
-h|--help)
20+
usage
21+
exit
22+
;;
23+
-g|--gpu)
24+
SOURCE_IMAGE="kaggle/python-gpu-build"
25+
TARGET_IMAGE="gcr.io/kaggle-private-byod/python"
26+
;;
27+
-?*)
28+
usage
29+
printf 'ERROR: Unknown option: %s\n' "$1" >&2
30+
exit
31+
;;
32+
*)
33+
break
34+
esac
35+
2336
shift
24-
fi
37+
done
2538

2639
LABEL=${1:-testing}
2740

28-
docker tag $SOURCE_IMAGE:latest $TARGET_IMAGE:$LABEL
29-
gcloud docker -- push $TARGET_IMAGE:$LABEL
41+
readonly SOURCE_IMAGE
42+
readonly TARGET_IMAGE
43+
readonly LABEL
44+
45+
set -x
46+
docker tag "${SOURCE_IMAGE}:latest" "${TARGET_IMAGE}:${LABEL}"
47+
gcloud docker -- push "${TARGET_IMAGE}:${LABEL}"
3048

3149
# Only CPU images are made public at this time.
3250
if [[ "$LABEL" == "latest" && SOURCE_IMAGE = "kaggle/python-build" ]]; then
33-
docker tag $SOURCE_IMAGE:latest kaggle/python:$LABEL
34-
docker push kaggle/python:$LABEL
51+
docker tag "${SOURCE_IMAGE}:latest" "kaggle/python:${LABEL}"
52+
docker push "kaggle/python:${LABEL}"
3553
fi

‎test‎

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,56 @@
11
#!/bin/bash
22
#
3-
# Run tests for a newly-built Python Docker image.
4-
# By default, it runs the tests for the CPU image.
3+
#
4+
#
55
#
66
# Usage:
77
# ./test [--gpu]
88
#
99
# Options:
1010
# --gpu: Run tests for the GPU image
1111
#
12-
1312
set -e
14-
set -x
13+
14+
usage() {
15+
cat << EOF
16+
Usage: $0 [OPTIONS]
17+
Run tests for a newly-built Python Docker image.
18+
By default, it runs the tests for the CPU image.
19+
20+
Options:
21+
-g, --gpu Run tests for the GPU image.
22+
EOF
23+
}
1524

1625
IMAGE_TAG="kaggle/python-build"
1726
ADDITONAL_OPTS=""
1827

19-
if [[ "$1" == "--gpu" ]]; then
20-
IMAGE_TAG="kaggle/python-gpu-build"
21-
ADDITONAL_OPTS="-v /tmp/empty_dir:/usr/local/cuda/lib64/stubs:ro"
28+
while :; do
29+
case "$1" in
30+
-h|--help)
31+
usage
32+
exit
33+
;;
34+
-g|--gpu)
35+
IMAGE_TAG="kaggle/python-gpu-build"
36+
ADDITONAL_OPTS="-v /tmp/empty_dir:/usr/local/cuda/lib64/stubs:ro"
37+
;;
38+
-?*)
39+
usage
40+
printf 'ERROR: Unknown option: %s\n' "$1" >&2
41+
exit
42+
;;
43+
*)
44+
break
45+
esac
46+
2247
shift
23-
fi
48+
done
2449

50+
readonly IMAGE_TAG
51+
readonly ADDITONAL_OPTS
52+
53+
set -x
2554
rm -rf /tmp/python-build
2655
docker rm jupyter_test || true
2756
mkdir -p /tmp/python-build/tmp
@@ -39,5 +68,5 @@ docker run --rm -t --read-only --net=none \
3968
-v /tmp/python-build/tmp:/tmp -v /tmp/python-build/devshm:/dev/shm \
4069
-w=/working \
4170
$ADDITONAL_OPTS \
42-
$IMAGE_TAG \
71+
"$IMAGE_TAG" \
4372
/bin/bash -c 'python -m unittest discover -s /input/tests'

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL