Add Dockerfile for MultiCloud Framework 03/9003/3
authorEthan Lynn <ethanlynnl@vmware.com>
Mon, 28 Aug 2017 08:45:26 +0000 (16:45 +0800)
committerEthan Lynn <ethanlynnl@vmware.com>
Fri, 1 Sep 2017 08:49:29 +0000 (16:49 +0800)
Change-Id: If3eea09eada26d2a51347642fd8cd1e1e96228a2
issue-id: MULTICLOUD-73
Signed-off-by: Ethan Lynn <ethanlynnl@vmware.com>
multivimbroker/docker/Dockerfile [new file with mode: 0644]
multivimbroker/docker/build-image.sh [new file with mode: 0644]
multivimbroker/pom.xml
multivimbroker/run.sh

diff --git a/multivimbroker/docker/Dockerfile b/multivimbroker/docker/Dockerfile
new file mode 100644 (file)
index 0000000..4cd71c0
--- /dev/null
@@ -0,0 +1,23 @@
+FROM python:2
+
+ENV MSB_ADDR "127.0.0.1"
+ENV MSB_PORT "80"
+ENV AAI_ADDR "aai.api.simpledemo.openecomp.org"
+ENV AAI_PORT "8443"
+ENV AAI_SCHEMA_VERSION "v11"
+ENV AAI_USERNAME "AAI"
+ENV AAI_PASSWORD "AAI"
+
+EXPOSE 9001
+
+# COPY ./ /opt/multivimbroker/
+RUN apt-get update && \
+    apt-get install -y unzip && \
+    cd /opt/ && \
+    wget -O multicloud-framework.zip "https://nexus.onap.org/service/local/artifact/maven/redirect?r=snapshots&g=org.onap.multicloud.framework&a=multicloud-framework&e=zip&v=LATEST" && \
+    unzip -q -o -B multicloud-framework.zip && \
+    rm -f multicloud-framework.zip && \
+    pip install -r /opt/multivimbroker/requirements.txt
+
+WORKDIR /opt/multivimbroker
+CMD /bin/sh -c /opt/multivimbroker/run.sh
\ No newline at end of file
diff --git a/multivimbroker/docker/build-image.sh b/multivimbroker/docker/build-image.sh
new file mode 100644 (file)
index 0000000..b6f4dd4
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+IMAGE="multicloud-framework"
+VERSION="latest"
+
+docker build -t ${IMAGE}:${VERSION} .
\ No newline at end of file
index 57a49fc..8affa09 100644 (file)
@@ -11,7 +11,9 @@
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 -->
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project 
+    xmlns="http://maven.apache.org/POM/4.0.0" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.onap.oparent</groupId>
         <artifactId>oparent</artifactId>
     <parent>
         <groupId>org.onap.oparent</groupId>
         <artifactId>oparent</artifactId>
     <name>multicloud/framework</name>
     <description>multivim broker</description>
     <build>
     <name>multicloud/framework</name>
     <description>multivim broker</description>
     <build>
-      <plugins>
-        <plugin>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <configuration>
-                <appendAssemblyId>false</appendAssemblyId>
-                <descriptors>
-                    <descriptor>assembly.xml</descriptor>
-                </descriptors>
-            </configuration>
-            <executions>
-                <execution>
-                    <id>make-assembly</id>
-                    <phase>package</phase>
-                    <goals>
-                        <goal>single</goal>
-                    </goals>
-                </execution>
-            </executions>
-        </plugin>
-      </plugins>
+        <plugins>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <appendAssemblyId>false</appendAssemblyId>
+                    <descriptors>
+                        <descriptor>assembly.xml</descriptor>
+                    </descriptors>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
     </build>
     </build>
-</project>
+    <profiles>
+        <profile>
+            <id>docker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.fabric8</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>0.16.5</version>
+                        <inherited>false</inherited>
+                        <configuration>
+                            <images>
+                                <image>
+                                    <name>onap/multicloud/multicloud-framework</name>
+                                    <build>
+                                        <cleanup>try</cleanup>
+                                        <dockerFileDir>${basedir}/docker/</dockerFileDir>
+                                        <dockerFile>${basedir}/docker/Dockerfile</dockerFile>
+                                        <tags>
+                                            <tag>${project.version}-STAGING-latest</tag>
+                                        </tags>
+                                    </build>
+                                </image>
+                            </images>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <id>generate-images</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>push-images</id>
+                                <phase>deploy</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                    <goal>push</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
\ No newline at end of file
index 3fb6e80..48b8476 100755 (executable)
@@ -1,13 +1,17 @@
 #!/bin/bash
 #!/bin/bash
-# Copyright (c) 2017 Wind River Systems, Inc.
-#
-# 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.
-
-nohup python manage.py runserver 127.0.0.1:9001 > /dev/null &
+
+sed -i "s/MSB_SERVICE_IP =.*/MSB_SERVICE_IP = \"${MSB_ADDR}\"/g" multivimbroker/pub/config/config.py
+sed -i "s/MSB_SERVICE_PORT =.*/MSB_SERVICE_PORT = \"${MSB_PORT}\"/g" multivimbroker/pub/config/config.py
+sed -i "s/AAI_ADDR =.*/AAI_ADDR = \"${AAI_ADDR}\"/g" multivimbroker/pub/config/config.py
+sed -i "s/AAI_PORT =.*/AAI_PORT = \"${AAI_PORT}\"/g" multivimbroker/pub/config/config.py
+sed -i "s/AAI_SCHEMA_VERSION =.*/AAI_SCHEMA_VERSION = \"${AAI_SCHEMA_VERSION}\"/g" multivimbroker/pub/config/config.py
+sed -i "s/AAI_USERNAME =.*/AAI_USERNAME = \"${AAI_USERNAME}\"/g" multivimbroker/pub/config/config.py
+sed -i "s/AAI_PASSWORD =.*/AAI_PASSWORD = \"${AAI_PASSWORD}\"/g" multivimbroker/pub/config/config.py
+
+nohup python manage.py runserver 0.0.0.0:9001 2>&1 &
+
+while [ ! -f logs/runtime_multivimbroker.log ]; do
+    sleep 1
+done
+
+tail -F logs/runtime_multivimbroker.log