diff options
Diffstat (limited to 'src/main/docker')
-rw-r--r-- | src/main/docker/.dockerignore | 2 | ||||
-rw-r--r-- | src/main/docker/Dockerfile | 52 | ||||
-rw-r--r-- | src/main/docker/startup.sh | 27 | ||||
-rw-r--r-- | src/main/docker/update_config.sh | 151 |
4 files changed, 232 insertions, 0 deletions
diff --git a/src/main/docker/.dockerignore b/src/main/docker/.dockerignore new file mode 100644 index 0000000..1128374 --- /dev/null +++ b/src/main/docker/.dockerignore @@ -0,0 +1,2 @@ +*.war +*.jsonld
\ No newline at end of file diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile new file mode 100644 index 0000000..4c2fe1a --- /dev/null +++ b/src/main/docker/Dockerfile @@ -0,0 +1,52 @@ +### +# ============LICENSE_START======================================================= +# MODEL LOADER SERVICE +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. 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. +# ============LICENSE_END========================================================= +### + +FROM ubuntu:14.04 +ARG jettyrel=9.3.9.v20160517 +ARG jettydist=jetty-distribution-${jettyrel} +ARG jettybase=/opt/jetty + +RUN apt-get update && apt-get --force-yes -y -f install wget + +# Install java8 +RUN apt-get install -y software-properties-common + +# sudo -E is required to preserve the environment +# If you remove that line, it will most like freeze at this step + +RUN sudo -E add-apt-repository ppa:openjdk-r/ppa && apt-get update && apt-get install -y openjdk-8-jdk + +# Setup JAVA_HOME, this is useful for docker commandline + +ENV JAVA_HOME usr/lib/jvm/java-8-openjdk-amd64 +RUN export JAVA_HOME + +RUN wget http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${jettyrel}/${jettydist}.tar.gz +RUN gunzip ${jettydist}.tar.gz && tar xvf ${jettydist}.tar + +COPY model-loader* $jettydist/webapps/model-loader/ + +COPY startup.sh update_config.sh ${jettydist}/bin/ +RUN chmod 700 ${jettydist}/bin/startup.sh && chmod 700 ${jettydist}/bin/update_config.sh +RUN mkdir -p ${jettybase} +RUN mv ${jettydist} ${jettybase}/${jettydist} +RUN rm -rf $jettybase/$jettydist/demo-base + +CMD /opt/jetty/*/bin/startup.sh diff --git a/src/main/docker/startup.sh b/src/main/docker/startup.sh new file mode 100644 index 0000000..22950cd --- /dev/null +++ b/src/main/docker/startup.sh @@ -0,0 +1,27 @@ +### +# ============LICENSE_START======================================================= +# MODEL LOADER SERVICE +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. 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. +# ============LICENSE_END========================================================= +### + +BIN_DIR=`dirname $0` + +echo "Checking environment for configuration options" +$BIN_DIR/update_config.sh + +echo "Starting up model loader..." +$BIN_DIR/jetty.sh run > /dev/null 2>&1
\ No newline at end of file diff --git a/src/main/docker/update_config.sh b/src/main/docker/update_config.sh new file mode 100644 index 0000000..77916ed --- /dev/null +++ b/src/main/docker/update_config.sh @@ -0,0 +1,151 @@ +#!/bin/bash + +### +# ============LICENSE_START======================================================= +# MODEL LOADER SERVICE +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. 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. +# ============LICENSE_END========================================================= +### + +# +# This script will update the config file, with config values supplied +# through environment variables, if set +# + +CONFIG_FILE=`dirname $0`/../webapps/model-loader/WEB-INF/classes/model-loader.properties + +# Distribution client configuration +ENVVAR=DISTR_CLIENT_ACTIVE_SERVER_TLS_AUTH +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.ACTIVE_SERVER_TLS_AUTH/s/.*/ml.distribution.ACTIVE_SERVER_TLS_AUTH=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_ASDC_ADDRESS +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.ASDC_ADDRESS/s/.*/ml.distribution.ASDC_ADDRESS=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_CONSUMER_GROUP +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.CONSUMER_GROUP/s/.*/ml.distribution.CONSUMER_GROUP=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_CONSUMER_ID +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.CONSUMER_ID/s/.*/ml.distribution.CONSUMER_ID=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_ENVIRONMENT_NAME +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.ENVIRONMENT_NAME/s/.*/ml.distribution.ENVIRONMENT_NAME=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_KEYSTORE_PASSWORD +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.KEYSTORE_PASSWORD/s/.*/ml.distribution.KEYSTORE_PASSWORD=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_KEYSTORE_FILE +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.KEYSTORE_FILE/s/.*/ml.distribution.KEYSTORE_FILE=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_PASSWORD +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.PASSWORD/s/.*/ml.distribution.PASSWORD=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_POLLING_INTERVAL +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.POLLING_INTERVAL/s/.*/ml.distribution.POLLING_INTERVAL=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_POLLING_TIMEOUT +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.POLLING_TIMEOUT/s/.*/ml.distribution.POLLING_TIMEOUT=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_USER +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.USER/s/.*/ml.distribution.USER=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=DISTR_CLIENT_ARTIFACT_TYPES +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.distribution.ARTIFACT_TYPES/s/.*/ml.distribution.ARTIFACT_TYPES=$ENVVALUE/" $CONFIG_FILE; + + +# Model Loader Application Server REST Client Configuration +ENVVAR=APP_SERVER_BASE_URL +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.BASE_URL/s/.*/ml.aai.BASE_URL=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=APP_SERVER_MODEL_URL +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.MODEL_URL/s/.*/ml.aai.MODEL_URL=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=APP_SERVER_NAMED_QUERY_URL +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.NAMED_QUERY_URL/s/.*/ml.aai.NAMED_QUERY_URL=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=APP_SERVER_VNF_IMAGE_URL +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.VNF_IMAGE_URL/s/.*/ml.aai.VNF_IMAGE_URL=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=APP_SERVER_KEYSTORE_FILE +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.KEYSTORE_FILE/s/.*/ml.aai.KEYSTORE_FILE=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=APP_SERVER_KEYSTORE_PASSWORD +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.KEYSTORE_PASSWORD/s/.*/ml.aai.KEYSTORE_PASSWORD=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=APP_SERVER_AUTH_USER +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.AUTH_USER/s/.*/ml.aai.AUTH_USER=$ENVVALUE/" $CONFIG_FILE; + +ENVVAR=APP_SERVER_AUTH_PASSWORD +ENVVALUE=${!ENVVAR} +ENVVALUE=${ENVVALUE//\//\\/} +[ -z ${!ENVVAR+x} ] \ + || sed -i "/ml.aai.AUTH_PASSWORD/s/.*/ml.aai.AUTH_PASSWORD=$ENVVALUE/" $CONFIG_FILE; |