diff options
-rw-r--r-- | aai-traversal/pom.xml | 47 | ||||
-rw-r--r-- | aai-traversal/src/main/docker/Dockerfile | 24 | ||||
-rw-r--r-- | aai-traversal/src/main/docker/aai.sh | 35 |
3 files changed, 71 insertions, 35 deletions
diff --git a/aai-traversal/pom.xml b/aai-traversal/pom.xml index 7531e78..483bde8 100644 --- a/aai-traversal/pom.xml +++ b/aai-traversal/pom.xml @@ -78,6 +78,7 @@ <janino.version>2.7.8</janino.version> <google.guava.version>19.0</google.guava.version> <janusgraph.version>0.2.3</janusgraph.version> + <jnr.ffi.version>2.1.9</jnr.ffi.version> <gremlin.version>3.2.2</gremlin.version> <smack.version>3.0.4</smack.version> <json.simple.version>1.1.1</json.simple.version> @@ -106,7 +107,7 @@ <eclipse.jetty.version>9.4.1.v20170120</eclipse.jetty.version> - <docker.fabric.version>0.23.0</docker.fabric.version> + <docker.fabric.version>0.28.0</docker.fabric.version> <!-- Default docker registry that maven fabric plugin will try to pull from --> <docker.registry>docker.io</docker.registry> <!-- Specifying the docker push registry where the image should be pushed --> @@ -118,7 +119,10 @@ Check the ${project.artifactId}/src/main/assembly/descriptor.xml for more info --> <aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/</aai.build.directory> + <aai.docker.version>1.0.0</aai.docker.version> <aai.docker.namespace>onap</aai.docker.namespace> + <aai.base.image>alpine</aai.base.image> + <aai.base.image.version>1.6.0</aai.base.image.version> <!-- Nexus Proxy Properties and Snapshot Locations @@ -169,6 +173,37 @@ <build> <plugins> <plugin> + <groupId>org.codehaus.groovy.maven</groupId> + <artifactId>gmaven-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <phase>pre-clean</phase> + </execution> + <execution> + <id>parse-base</id> + <phase>prepare-package</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + def userAaiBaseImage = session.userProperties['aai.base.image']; + def userAaiCommonVersion = session.userProperties['aai.base.image.version']; + if (userAaiCommonVersion != null) { + project.properties['aai.base.image.version'] = userAaiCommonVersion; + } + if (userAaiBaseImage != null) { + project.properties['aai.base.image'] = userAaiBaseImage; + } + log.info 'Base image flavour: ' + project.properties['aai.base.image']; + log.info 'Base image version: ' + project.properties['aai.base.image.version']; + </source> + </configuration> + </execution> + </executions> + </plugin> + <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>${docker.fabric.version}</version> @@ -493,6 +528,16 @@ </exclusion> </exclusions> </dependency> + <!-- + indirect janusgraph-cassandra dependency + need to be newer than default one + in order to support multiple cpu archs + --> + <dependency> + <groupId>com.github.jnr</groupId> + <artifactId>jnr-ffi</artifactId> + <version>${jnr.ffi.version}</version> + </dependency> <dependency> <groupId>org.apache.tinkerpop</groupId> <artifactId>gremlin-driver</artifactId> diff --git a/aai-traversal/src/main/docker/Dockerfile b/aai-traversal/src/main/docker/Dockerfile index bbe0aa3..6ab1dd1 100644 --- a/aai-traversal/src/main/docker/Dockerfile +++ b/aai-traversal/src/main/docker/Dockerfile @@ -1,25 +1,19 @@ -FROM aaionap/aai-common:1.3.0 - - -# Add the proper files into the docker image from your build -WORKDIR /opt/app/aai-traversal - -# Expose the ports for outside linux to use -# 8446 is the important one to be used -EXPOSE 8446 - - -HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost 8446 || exit 1 - -ENTRYPOINT ["/bin/bash", "/opt/app/aai-traversal/docker-entrypoint.sh"] +FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@ RUN mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-GQ VOLUME /opt/aai/logroot/AAI-GQ - VOLUME /tmp VOLUME /opt/tools +HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost 8446 || exit 1 + +# Add the proper files into the docker image from your build +WORKDIR /opt/app/aai-traversal COPY /maven/aai-traversal/ . ENV AAI_BUILD_VERSION @aai.docker.version@ +# Expose the ports for outside linux to use +# 8446 is the important one to be used +EXPOSE 8446 +ENTRYPOINT ["/bin/bash", "/opt/app/aai-traversal/docker-entrypoint.sh"]
\ No newline at end of file diff --git a/aai-traversal/src/main/docker/aai.sh b/aai-traversal/src/main/docker/aai.sh index a253775..8cda4f0 100644 --- a/aai-traversal/src/main/docker/aai.sh +++ b/aai-traversal/src/main/docker/aai.sh @@ -20,25 +20,22 @@ # ECOMP is a trademark and service mark of AT&T Intellectual Property. # -PROJECT_HOME=/opt/app/aai-traversal -export PROJECT_HOME - -JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 -export JAVA_HOME - -AAIENV=dev -export AAIENV - -PATH=/usr/lib/jvm/java-8-openjdk-amd64:$PATH - -PROJECT_OWNER=aaiadmin -PROJECT_GROUP=aaiadmin -PROJECT_UNIXHOMEROOT=/opt/aaihome -export PROJECT_OWNER PROJECT_GROUP PROJECT_UNIXHOMEROOT -umask 0022 - +# set system related env +# and make script compatible both with ubuntu and alpine base images +# jre-alpine image has $JAVA_HOME set and added to $PATH +# ubuntu image requires to set $JAVA_HOME and add java to $PATH manually +if [ -z $JAVA_HOME ] && [ $(grep -i "ID=ubuntu" /etc/os-release | wc -w) -eq 1 ] ; then + export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-`dpkg --print-architecture | awk -F- '{ print $NF }'` + export PATH=$PATH:${JAVA_HOME}/jre/bin:${JAVA_HOME}/bin +fi + +# set app related env +export PROJECT_HOME=/opt/app/aai-traversal +export AAIENV=dev +export PROJECT_OWNER=aaiadmin +export PROJECT_GROUP=aaiadmin +export PROJECT_UNIXHOMEROOT=/opt/aaihome export idns_api_url= export idnscred= export idnstenant= - - +umask 0022 |