diff options
-rw-r--r-- | aai-resources/pom.xml | 50 | ||||
-rw-r--r-- | aai-resources/src/main/docker/Dockerfile | 23 | ||||
-rw-r--r-- | aai-resources/src/main/docker/aai.sh | 35 |
3 files changed, 73 insertions, 35 deletions
diff --git a/aai-resources/pom.xml b/aai-resources/pom.xml index 5fd4698..6960476 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,12 +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 @@ -163,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> @@ -171,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> @@ -475,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 |