# Original work Copyright 2017 AT&T Intellectual Property, Inc
# Modified work Copyright 2021 Xoriant Corporation
#
# 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.
#
# What this is: A Dockerfile for building an OPFNV VES Agent container image.
#
# Status: this is a work in progress, under test.
#

FROM ubuntu:focal

RUN mkdir /opt/ves

RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y tzdata
# Required for kafka: default-jre zookeeperd python-pip kafka-python
# Required for building librdkafka:  git build-essential
# libpthread-stubs0-dev libssl-dev libsasl2-dev liblz4-dev
# (or libz-dev?)
# Required for building collectd: pkg-config
RUN apt-get install -y netcat
RUN apt-get install -y default-jre zookeeperd \
python3 python3-pip pkg-config git build-essential libpthread-stubs0-dev \
libssl-dev libsasl2-dev liblz4-dev libz-dev
RUN pip3 install kafka-python pyaml
RUN pip3 install --upgrade certifi

RUN mkdir /opt/ves/barometer
ADD barometer /opt/ves/barometer

COPY start.sh /opt/ves/start.sh
ENTRYPOINT ["/bin/bash", "/opt/ves/start.sh"]
