From f4b36ef3cd49bf99c9b82c225fac1933b6fddf7a Mon Sep 17 00:00:00 2001 From: shivasubedi Date: Wed, 23 Jun 2021 16:01:10 +0100 Subject: Create docker image for dmi-plugin Issue-ID: CPS-404 Signed-off-by: tragait Change-Id: Ifa62eae6ca6e8f40ce380f95bdc434a9b1dafe4b Signed-off-by: shivasubedi --- docker-compose/README.md | 88 +++++++++++++++++++++++++++++++++++++++ docker-compose/docker-compose.yml | 28 +++++++++++++ pom.xml | 64 ++++++++++++++++++++++++++++ 3 files changed, 180 insertions(+) create mode 100644 docker-compose/README.md create mode 100755 docker-compose/docker-compose.yml diff --git a/docker-compose/README.md b/docker-compose/README.md new file mode 100644 index 00000000..4dfe20e4 --- /dev/null +++ b/docker-compose/README.md @@ -0,0 +1,88 @@ + +# Building and running dmi-plugin locally + +## Building Java Archive only + +Following command builds Java component to `ncmp-dmi-plugin/target/ncmp-dmi-plugin-x.y.z-SNAPSHOT.jar` JAR file +without generating any docker images: + +```bash +mvn clean install -Djib.skip +``` + +## Building Java Archive and Docker image + +* Following command builds the JAR file and also generates the Docker image for the dmi plugin: + +```bash +mvn clean install +``` + +## Running Docker containers + +`docker-compose/docker-compose.yml` file is provided to be run with `docker-compose` tool and images previously built. +It starts ncmp-dmi-plugin service. + +Execute following command from `docker-compose` folder: + +Use one of the below types that has been generated in the local system's docker image list after the build. +```bash +docker-compose up -d +or +VERSION= docker-compose up -d +or +DOCKER_REPO= docker-compose up -d +or +VERSION= DOCKER_REPO= docker-compose up -d +``` + +## Running or debugging Java built code + +dmi-plugin can be started either using a Java Archive previously built or directly from Intellij IDE. + +### Running from Jar Archive + +Following command starts the application using JAR file: + +```bash +CPS_USERNAME=cpsuser CPS_PASSWORD=cpsr0cks! \ + java -jar ncmp-dmi-plugin/target/ncmp-dmi-plugin-x.y.z-SNAPSHOT.jar +``` + +### Running from IntelliJ IDE + +Here are the steps to run or debug the application from Intellij: + +1. Enable the desired maven profile from Maven Tool Window +2. Run a configuration from `Run -> Edit configurations` with following settings: + * `Environment variables`: `CPS_USERNAME=cpsuser CPS_PASSWORD=cpsr0cks!` + +## Accessing services + +Swagger UI and Open API specifications are available to discover service endpoints and send requests. + +* `http://localhost:/swagger-ui/index.html` +* `http://localhost:/v3/api-docs?group=dmi-plugin-docket` + +with being either `8080` if running the plain Java build or retrieved using following command +if running from `docker-compose`: + +```bash +docker inspect \ + --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' \ + +``` diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml new file mode 100755 index 00000000..5b7e2970 --- /dev/null +++ b/docker-compose/docker-compose.yml @@ -0,0 +1,28 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2021 Nordix Foundation +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= + +version: "3.7" + +services: + ncmp-dmi-plugin: + container_name: ncmp-dmi-plugin + image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/ncmp-dmi-plugin:${VERSION:-latest} + ports: + - "8883:8080" + environment: + CPS_USERNAME: ${CPS_USERNAME:-cpsuser} + CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!} + restart: unless-stopped diff --git a/pom.xml b/pom.xml index 58960120..45c39dc0 100644 --- a/pom.xml +++ b/pom.xml @@ -34,12 +34,17 @@ DMI Plugin Service org.onap.cps.ncmp.Application + ${docker.pull.registry}/onap/integration-java11:8.0.0 1.1.0-SNAPSHOT 1.5.0 3.0.8 + ${project.version}-${maven.build.timestamp} 0.8.5 0.7 11 + 2.8.0 + yyyyMMdd'T'HHmmss'Z' + 3.2.0 UTF-8 2.0-M5-groovy-3.0 2.0-M5-groovy-3.0 @@ -342,5 +347,64 @@ + + + + com.google.cloud.tools + jib-maven-plugin + ${jib-maven-plugin.version} + + + ${app} + USE_CURRENT_TIMESTAMP + + + ${base.image} + + + + latest + + ${docker.push.registry}/onap/${image.name}:${image.tag} + + + + + package + build + + dockerBuild + + + + deploy + buildAndPush + + build + + + + + + + + + dmi-docker + + true + + + ncmp-dmi-plugin + + + + + com.google.cloud.tools + jib-maven-plugin + + + + + \ No newline at end of file -- cgit 1.2.3-korg