mirror of https://github.com/istio/proxy.git
84 lines
2.7 KiB
Bash
Executable File
84 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright 2016 Istio Authors. All Rights Reserved.
|
|
#
|
|
# 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.
|
|
#
|
|
################################################################################
|
|
#
|
|
|
|
# Build the docker images, and upload them to gcloud.
|
|
#
|
|
# For development, you can pass "debug" parameter to only build debug image and skip the upload.
|
|
# You can override DEBUG_IMAGE_NAME, RELEASE_IMAGE_NAME to specify a different destination for upload.
|
|
# You can also set TAG, PROJECT, REPO - the upload will go to $REPO/$PROJECT/envoy[-debug]:$TAG
|
|
|
|
# To run locally, use
|
|
# docker run -it --cap-add=NET_ADMIN --rm [--entrypoint /bin/bash] -p 15000:15000 ... gcr.io/istio-testing/envoy-debug:$TAG
|
|
|
|
set -ex
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
PROJECT=${PROJECT:-istio-testing}
|
|
|
|
SHA=$(git rev-parse HEAD)
|
|
|
|
DOCKER_TAG="${SHA}"
|
|
|
|
REPO=${REPO:-gcr.io}
|
|
|
|
TAG=${TAG:-$DOCKER_TAG}
|
|
|
|
BAZEL_TARGET_DIR="bazel-bin/src/envoy"
|
|
|
|
BAZEL_TARGET="${BAZEL_TARGET_DIR}/envoy"
|
|
RELEASE_IMAGE_NAME=${RELEASE_IMAGE_NAME:-${REPO}/${PROJECT}/envoy:${TAG}}
|
|
DEBUG_IMAGE_NAME=${DEBUG_IMAGE_NAME:-${REPO}/${PROJECT}/envoy-debug:${TAG}}
|
|
|
|
if [[ ${1-} != "debug" ]] ; then
|
|
gcloud docker --authorize-only
|
|
fi
|
|
|
|
echo Publishing debug docker image
|
|
rm -f ${BAZEL_TARGET_DIR}/envoy
|
|
bazel build -c dbg //src/envoy
|
|
cp tools/deb/istio-iptables.sh ${BAZEL_TARGET_DIR}
|
|
cp tools/deb/istio-start.sh ${BAZEL_TARGET_DIR}
|
|
cp tools/deb/envoy.json ${BAZEL_TARGET_DIR}
|
|
cp docker/proxy-* ${BAZEL_TARGET_DIR}
|
|
cp docker/Dockerfile.debug ${BAZEL_TARGET_DIR}
|
|
docker build -f ${BAZEL_TARGET_DIR}/Dockerfile.debug -t "${DEBUG_IMAGE_NAME}" ${BAZEL_TARGET_DIR}
|
|
|
|
if [[ ${1-} != "debug" ]] ; then
|
|
gcloud docker -- push "${DEBUG_IMAGE_NAME}"
|
|
fi
|
|
|
|
if [[ ${1-} == "debug" ]] ; then
|
|
# Don't push the opt image.
|
|
exit 0
|
|
fi
|
|
|
|
echo Publishing release docker image
|
|
rm -f ${BAZEL_TARGET_DIR}/envoy
|
|
bazel build --config=release //src/envoy
|
|
cp tools/deb/istio-iptables.sh ${BAZEL_TARGET_DIR}
|
|
cp tools/deb/istio-start.sh ${BAZEL_TARGET_DIR}
|
|
cp tools/deb/envoy.json ${BAZEL_TARGET_DIR}
|
|
cp docker/proxy-* ${BAZEL_TARGET_DIR}
|
|
cp docker/Dockerfile.release ${BAZEL_TARGET_DIR}
|
|
docker build -f ${BAZEL_TARGET_DIR}/Dockerfile.release -t "${RELEASE_IMAGE_NAME}" ${BAZEL_TARGET_DIR}
|
|
gcloud docker -- push "${RELEASE_IMAGE_NAME}"
|
|
|