From edc50bbe598cbd999b9d8995a52b41894356c722 Mon Sep 17 00:00:00 2001 From: jianglai Date: Fri, 16 Feb 2018 08:51:01 -0800 Subject: [PATCH] Containerize GCP proxy ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186002010 --- java/google/registry/proxy/Dockerfile | 24 +++++++++ java/google/registry/proxy/build_image.sh | 59 +++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 java/google/registry/proxy/Dockerfile create mode 100755 java/google/registry/proxy/build_image.sh diff --git a/java/google/registry/proxy/Dockerfile b/java/google/registry/proxy/Dockerfile new file mode 100644 index 000000000..df3688e55 --- /dev/null +++ b/java/google/registry/proxy/Dockerfile @@ -0,0 +1,24 @@ +# Copyright 2018 The Nomulus 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. + +FROM openjdk:8 + +WORKDIR /proxy + +COPY ./proxy_server_deploy.jar /proxy/ + +ENTRYPOINT ["java", "-jar", "proxy_server_deploy.jar"] + +# Ports used for health checking, EPP and WHOIS, respecitvely. +EXPOSE 11111 22222 12345 diff --git a/java/google/registry/proxy/build_image.sh b/java/google/registry/proxy/build_image.sh new file mode 100755 index 000000000..d2c375b46 --- /dev/null +++ b/java/google/registry/proxy/build_image.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# Copyright 2018 The Nomulus 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. + +# This script builds the proxy jar file with all of its dependencies included, +# then puts it in an image with a name compatible with GCR. If a "push" +# argument is given, it also uploads the image to GCR. + +function cleanup() { + rm ${WORKDIR}/${TARGET} -f +} + +trap cleanup EXIT + +PROJECT=`gcloud config list 2>&1 | grep project | awk -F'= ' '{print $2}'`; + +PACKAGE_PREFIX="" + +PACKAGE=${PACKAGE_PREFIX}"java/google/registry/proxy" + +TARGET=proxy_server_deploy.jar + +BUILD_TOOL=bazel + +WORKSPACE=`$BUILD_TOOL info workspace` + +WORKDIR=${WORKSPACE}/${PACKAGE} + +BINDIR=${WORKSPACE}/${BUILD_TOOL}-bin/${PACKAGE} + +$BUILD_TOOL build "//"${PACKAGE}:${TARGET} + +cp ${BINDIR}/${TARGET} ${WORKDIR}/ + +docker build -t gcr.io/${PROJECT}/proxy:latest $WORKDIR + +# Publish the image to GCR if "push" argument is given. +if [ -z $1 ] +then + exit +fi + +if [ $1 = "push" ] +then + gcloud docker -- push gcr.io/${PROJECT}/proxy:latest +else + echo "usage: $0 [push]" +fi