| # This bash file is intended to be used for docker images. To use this file |
| # just create your own bash file in which you define the APPNAME var and the |
| # copy_release_files() function which copies all the files needed in the |
| # distribution in ${ROOT}. At a minimum, copy_release_files() must place |
| # a 'Dockerfile' file immediately under ${ROOT}. Then source this file after |
| # those definitions. The resulting docker image will be uploaded to the Google |
| # Container registry. |
| # |
| # PROJECT |
| # ------- |
| # If PROJECT is set then it is used as the default GCE project for the Google |
| # Container Registry. This value defaults to 'skia-public'. The project must |
| # have Google Container Registry activated. |
| # |
| # TAG |
| # --- |
| # If TAG is set then it is used as the tag for the docker image, otherwise a |
| # unique tag is generated from the time/date, user, git hash and repo state. |
| # This should never be set for application images, i.e. ones that will |
| # participate in pushk, which expects the auto generated tag format. |
| # |
| # SKIP_UPLOAD |
| # ----------- |
| # If SKIP_UPLOAD is set then do not push the image to the container registry. |
| # This is useful when developing locally and needing to rapidly iterate on |
| # the image. |
| # |
| # SKIP_BUILD |
| # ----------- |
| # If SKIP_BUILD is set then do not run docker on the ROOT directory. This also |
| # skips the upload step since nothing will have been built. Useful for cloud |
| # builder steps. |
| # |
| # ROOT |
| # ---- |
| # If ROOT is not set then it will be set to a temp directory that is created, |
| # otherewise ROOT is presumed to exist. |
| |
| set -e |
| |
| # Useful variables used by build_* scripts. |
| INSTALL="install -D --verbose --backup=none" |
| INSTALL_DIR="install -d --verbose --backup=none" |
| REL=$(dirname "$BASH_SOURCE") |
| |
| if [ -z "$ROOT" ]; then |
| ROOT=`mktemp -d` |
| fi |
| mkdir -p ${ROOT} |
| PROJECT="${PROJECT:-skia-public}" |
| |
| # Calculate the tag. |
| if [ -z "$TAG" ]; then |
| # If the format of this ever changes then please also update k8s_checker/main.go |
| TAG=`${REL}/release_tag.sh` |
| fi |
| |
| copy_release_files |
| |
| if [ -z "$SKIP_BUILD" ]; then |
| docker build -t ${APPNAME} ${ROOT} |
| |
| if [ -z "$SKIP_UPLOAD" ]; then |
| docker tag ${APPNAME} gcr.io/${PROJECT}/${APPNAME}:${TAG} |
| docker push gcr.io/${PROJECT}/${APPNAME}:${TAG} |
| echo gcr.io/${PROJECT}/${APPNAME}:${TAG} |
| fi |
| fi |