aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--aai-resources/pom.xml49
-rw-r--r--aai-resources/src/main/docker/Dockerfile23
-rw-r--r--aai-resources/src/main/docker/aai.sh35
3 files changed, 72 insertions, 35 deletions
diff --git a/aai-resources/pom.xml b/aai-resources/pom.xml
index b09a6c7..3214cc7 100644
--- a/aai-resources/pom.xml
+++ b/aai-resources/pom.xml
@@ -74,6 +74,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.driver.version>3.2.2</gremlin.driver.version>
<gremlin.core.version>3.2.2</gremlin.core.version>
<gremlin.version>3.2.2</gremlin.version>
@@ -106,13 +107,15 @@
<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 -->
<!-- This value should be overwritten at runtime to wherever need to be pushed to -->
<docker.push.registry>localhost:5000</docker.push.registry>
<aai.docker.version>1.0.0</aai.docker.version>
+ <aai.base.image>alpine</aai.base.image>
+ <aai.base.image.version>1.6.0</aai.base.image.version>
<!--
Location where assembly of our scripts, resources and main jar will be held
@@ -164,6 +167,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>
@@ -172,7 +206,8 @@
<apiVersion>1.23</apiVersion>
<images>
<image>
- <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l</name>
+ <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l
+ </name>
<build>
<filter>@</filter>
<tags>
@@ -476,6 +511,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.janusgraph</groupId>
<artifactId>janusgraph-cql</artifactId>
diff --git a/aai-resources/src/main/docker/Dockerfile b/aai-resources/src/main/docker/Dockerfile
index e6d9d6f..1c17a75 100644
--- a/aai-resources/src/main/docker/Dockerfile
+++ b/aai-resources/src/main/docker/Dockerfile
@@ -1,17 +1,4 @@
-FROM aaionap/aai-common:1.3.0
-
-
-# Add the proper files into the docker image from your build
-WORKDIR /opt/app/aai-resources
-
-# Expose the ports for outside linux to use
-# 8447 is the important one to be used
-EXPOSE 8447
-
-
-HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost ${SERVER_PORT:-8447} || exit 1
-
-ENTRYPOINT ["/bin/bash", "/opt/app/aai-resources/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-RES
@@ -19,6 +6,14 @@ VOLUME /opt/aai/logroot/AAI-RES
VOLUME /tmp
VOLUME /opt/tools
+HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost ${SERVER_PORT:-8447} || exit 1
+
+# Add the proper files into the docker image from your build
+WORKDIR /opt/app/aai-resources
COPY /maven/aai-resources/ .
ENV AAI_BUILD_VERSION @aai.docker.version@
+# Expose the ports for outside linux to use
+# 8447 is the important one to be used
+EXPOSE 8447
+ENTRYPOINT ["/bin/bash", "/opt/app/aai-resources/docker-entrypoint.sh"] \ No newline at end of file
diff --git a/aai-resources/src/main/docker/aai.sh b/aai-resources/src/main/docker/aai.sh
index 2e2c35f..11b9c85 100644
--- a/aai-resources/src/main/docker/aai.sh
+++ b/aai-resources/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-resources
-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-resources
+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