+# Copyright 2020 Huawei Technologies Co., Ltd.
+# Copyright 2020 Nokia
#
-# This file was auto-generated by gen-all-dockerfiles.sh; do not modify manually.
+# 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.
#
# vnf-sdk-marketplace/target/Dockerfile
#
# 10-basebuild.txt
-FROM ubuntu:16.04
-#RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
-RUN apt-get install -y
-RUN apt-get update -y
-RUN apt-get install wget -y
-
-WORKDIR /service
+FROM openjdk:11-jre-slim
+ARG DEBIAN_FRONTEND=noninteractive
-
-
-ENV JAVA_VERSION_MAJOR=8 \
- JAVA_VERSION_MINOR=111 \
+ENV JAVA_VERSION_MAJOR=11 \
+ JAVA_VERSION_MINOR=08 \
JAVA_HOME=/usr/lib/jvm/default-jvm \
- PATH=${PATH}:/usr/lib/jvm/default-jvm/bin/
-
-RUN DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
-RUN DEBIAN_FRONTEND=noninteractive apt-get -y install python-software-properties
-RUN DEBIAN_FRONTEND=noninteractive apt-get -y install software-properties-common
-
-RUN add-apt-repository ppa:openjdk-r/ppa -y && \
-
- # update data from repositories
- apt-get update && \
-
- # upgrade OS
- apt-get -y dist-upgrade && \
-
- # Make info file about this build
- printf "Build of java:openjdk-8-jre-headless, date: %s\n" `date -u +"%Y-%m-%dT%H:%M:%SZ"` > /service/java && \
-
- # install application
- apt-get install -y --no-install-recommends openjdk-8-jre-headless && \
-
- # fix default setting
- ln -s java-8-openjdk-amd64 /usr/lib/jvm/default-jvm && \
-
- # remove apt cache from image
- apt-get clean all
-
-
-# Set up tomcat
-RUN wget -q http://mirrors.ocf.berkeley.edu/apache/tomcat/tomcat-8/v8.0.50/bin/apache-tomcat-8.0.50.tar.gz && tar --strip-components=1 -xf apache-tomcat-8.0.50.tar.gz && rm -f apache-tomcat-8.0.50.tar.gz && rm -rf webapps && mkdir -p webapps/ROOT
-RUN echo 'export CATALINA_OPTS="$CATALINA_OPTS -Xms64m -Xmx256m -XX:MaxPermSize=64m"' > /service/bin/setenv.sh
-ENV CATALINA_HOME /service
-
-
-# Set up microservice
-#ADD ./STAGE /service
-#RUN apt-get install -y g++ make && curl -sL https://rpm.nodesource.com/setup_6.x | bash -
-#RUN apt-get install -y nodejs
-#RUN apt-get install -y npm
-#RUN cd /service/webapps/onapui/vnfmarket && npm install phantomjs-prebuilt@2.1.14 --ignore-scripts && npm install
-
-
-
-RUN add-apt-repository -y ppa:nginx/stable && \
- apt-get update && \
- apt-get install -y nginx && \
- rm -rf /var/lib/apt/lists/* && \
- echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
- chown -R www-data:www-data /var/lib/nginx
-
-# Define mountable directories.
-VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
-
-# Define working directory.
-WORKDIR /etc/nginx
-
-#CMD ["nginx"]
-
-
-EXPOSE 8702
-EXPOSE 8703
-
+ PATH=${PATH}:/usr/lib/jvm/default-jvm/bin/ \
+ CATALINA_HOME=/service
+
+# Install required libraries
+RUN apt-get update && apt-get install -y \
+ curl \
+ procps \
+ g++ \
+ make \
+ nano \
+ nginx \
+ sudo \
+ unzip \
+ wget \
+ && rm -rf /var/lib/apt/lists/* \
+ && sudo mkdir -p /usr/lib/jvm/default-jvm \
+ && sudo ln -s /usr/local/openjdk-11/* /usr/lib/jvm/default-jvm
+
+# Installing Node
+ENV NVM_DIR /usr/local/nvm
+ENV NODE_VERSION 14.16.0
+SHELL ["/bin/bash", "--login", "-i", "-c"]
+RUN mkdir -p $NVM_DIR && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | NVM_DIR=$NVM_DIR bash
+RUN source /root/.bashrc && nvm install $NODE_VERSION
+SHELL ["/bin/bash", "--login", "-c"]
+ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
+ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
+
+# Download and set up Tomcat
WORKDIR /service
+RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.30/bin/apache-tomcat-8.5.30.tar.gz && \
+ tar --strip-components=1 -xf apache-tomcat-8.5.30.tar.gz && \
+ rm -f apache-tomcat-8.5.30.tar.gz && rm -rf webapps && mkdir -p webapps/ROOT && \
+ echo 'export CATALINA_OPTS="$CATALINA_OPTS -Xms64m -Xmx256m -XX:MaxPermSize=64m"' > /service/bin/setenv.sh
-RUN mkdir -p /etc/nginx/ssl
+# Copy artifacts
+WORKDIR /service
COPY nginx.conf /etc/nginx/nginx.conf
COPY certgen.sh /service
-RUN chmod +x /service/certgen.sh
-RUN /service/certgen.sh
-
-
-
-RUN apt-get update && apt-get install nano -y
-RUN apt-get install curl -y
-
-
-#RUN apt-get install vim -y
-
-
COPY instance-config.sh .
COPY instance-init.sh .
COPY instance-run.sh .
COPY instance-workaround.sh .
COPY docker-entrypoint.sh .
+COPY install-vtp.sh .
+COPY vtp-tc.sh .
+COPY LICENSE ./ONAP_LICENSE
+# Configure NGINX
+RUN mkdir -p /etc/nginx/ssl && \
+ chown -R www-data:www-data /var/lib/nginx
+# Generate certificates
+RUN chmod +x /service/certgen.sh && \
+ /service/certgen.sh
# Set up microservice
ADD ./STAGE /service
-RUN apt-get install -y g++ make && curl -sL https://rpm.nodesource.com/setup_6.x
-RUN apt-get install -y nodejs
-RUN apt-get install -y npm
-RUN apt-get -qq update && apt-get -qq -y install bzip2
-RUN chmod +x /service/bin/*.sh
-RUN service nginx start &
-RUN cd /service/webapps/onapui/vnfmarket && npm install phantomjs-prebuilt@2.1.14 --ignore-scripts && npm install
+RUN chmod +x /service/bin/*.sh && \
+ cd /service/webapps/onapui/vnfmarket && \
+ npm install phantomjs-prebuilt@2.1.14 --ignore-scripts && \
+ npm install
+# VTP setup
+RUN chmod a+x /service/install-vtp.sh && \
+ chmod a+x /service/vtp-tc.sh && \
+ /service/install-vtp.sh
-ENTRYPOINT /service/docker-entrypoint.sh
-RUN chmod a+x /service/docker-entrypoint.sh
-ENTRYPOINT ["/service/docker-entrypoint.sh"]
+# Create group and user
+RUN groupadd -r vnfadmin && useradd -m --no-log-init -r -g vnfadmin vnfadmin && \
+ usermod -aG sudo vnfadmin && echo "vnfadmin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
+ chmod -R 777 /usr/local/
+
+USER vnfadmin
+# Define mountable directories.
+VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
+EXPOSE 8702
+EXPOSE 8703
+EXPOSE 50051
-COPY LICENSE ./ONAP_LICENSE
+ENTRYPOINT ["/service/docker-entrypoint.sh"]