# ================================================================================
# Copyright (c) 2018 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 caskdata/cdap-standalone:4.1.2

RUN apt-get update && apt-get install -y netcat jq iputils-ping wget vim curl
COPY get-tca.sh /opt/tca/get-tca.sh
RUN /opt/tca/get-tca.sh
COPY tca_app_config.json /opt/tca/tca_app_config.json
COPY tca_app_preferences.json /opt/tca/tca_app_preferences.json
COPY restart.sh /opt/tca/restart.sh
RUN chmod 755 /opt/tca/restart.sh
COPY mr-watchdog.sh /opt/tca/mr-watchdog.sh
RUN chmod 755 /opt/tca/mr-watchdog.sh

#COPY host.aliases /etc/host.aliases
#RUN echo "export HOSTALIASES=/etc/host.aliases" >> /etc/profile
#ENV HOSTALIASES /etc/host.aliases

EXPOSE 11011
EXPOSE 11015

ENTRYPOINT /opt/tca/restart.sh
