Change PTL of VNFSDK to be Dan Xu
[vnfsdk/refrepo.git] / vnfmarket-be / deployment / docker / docker-refrepo / src / main / docker / Dockerfile
index 12b354b..1b3d65a 100644 (file)
+# 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 .
-CMD  chmod +x ./certgen.sh
-RUN ./certgen.sh
-
-
-
-RUN apt-get update && apt-get install nano -y
-RUN apt-get install curl -y
-
-
-#RUN apt-get install vim -y
-
-
+COPY certgen.sh /service
 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 cd /service/webapps/onapui/vnfmarket &&  npm install phantomjs-prebuilt@2.1.14 --ignore-scripts &&  npm install
-CMD chmod +x ./bin/*.sh && service nginx start
+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/
 
-COPY LICENSE ./ONAP_LICENSE
+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
+
+ENTRYPOINT ["/service/docker-entrypoint.sh"]