X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=docker-compose%2FREADME.md;h=623968f33b2e1fc4ae9b626329be2096f7b6de1f;hb=2f09266fd3231529e41ce97b02577bc5b82a8c03;hp=619b0d4a8d62134492a640f4ca51a01d3d284edf;hpb=c8f2136670321731ec97d027d427af2ec9fd1077;p=cps.git diff --git a/docker-compose/README.md b/docker-compose/README.md index 619b0d4a8..623968f33 100644 --- a/docker-compose/README.md +++ b/docker-compose/README.md @@ -1,7 +1,120 @@ -# Docker Compose + + +# Building and running CPS locally + +## Building Java Archive only + +Following command builds all Java components to `cps-application/target/cps-application-x.y.z-SNAPSHOT.jar` JAR file +without generating any docker images: + +```bash +mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker -Djib.skip +``` + +## Building Java Archive and Docker images + +* Following command builds the JAR file and also generates the Docker image for all CPS components: + +```bash +mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker +``` + +* Following command builds the JAR file and generates the Docker image for specified CPS component: + (with `` being one of `cps-docker`, `ncmp-docker` or `cps-ncmp-docker`): + +```bash +mvn clean install -P +``` + +## Running Docker containers + +`docker-compose/docker-compose.yml` file is provided to be run with `docker-compose` tool and images previously built. +It starts both Postgres database and CPS services. + +1. Edit `docker-compose.yml` + 1. uncomment desired service to be deployed, by default `cps-and-ncmp` is enabled. You can comment it and uncomment `cps-standalone` or `ncmp-standalone`. + 2. To send data-updated events to kafka, + * uncomment the `zookeeper` and `kafka` services. + * uncomment environment variables + * `notification.data-updated.enabled: 'true'` + * `KAFKA_BOOTSTRAP_SERVER: kafka:9092` + * `NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'` +2. Execute following command from `docker-compose` folder: + +Use one of the below version type that has been generated in the local system's docker image list after the build. +```bash +VERSION=latest DB_USERNAME=cps DB_PASSWORD=cps docker-compose up -d +or +VERSION= DB_USERNAME=cps DB_PASSWORD=cps docker-compose up -d +``` + +## Running or debugging Java built code + +Before running CPS, a Postgres database instance needs to be started. This can be done with following +command: + +```bash +docker run --name postgres -p 5432:5432 -d \ + -e POSTGRES_DB=cpsdb -e POSTGRES_USER=cps -e POSTGRES_PASSWORD=cps \ + postgres:12.4-alpine +``` + +Then CPS 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 +DB_HOST=localhost DB_USERNAME=cps DB_PASSWORD=cps CPS_CORE_USERNAME=cpsuser CPS_CORE_PASSWORD=cpsr0cks! \ + java -jar cps-application/target/cps-application-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 form Maven Tool Window +2. Run a configuration from `Run -> Edit configurations` with following settings: + * `Environment variables`: `DB_HOST=localhost;DB_USERNAME=cps;DB_PASSWORD=cps + CPS_CORE_USERNAME=cpsuser CPS_CORE_PASSWORD=cpsr0cks!` + +## Accessing services + +Swagger UI and Open API specifications are available to discover service endpoints and send requests. + +* `http://localhost:/swagger-ui.html` +* `http://localhost:/api-docs/cps-core/openapi.yaml` +* `http://localhost:/api-docs/cps-ncmp/openapi.yaml` +* `http://localhost:/api-docs/cps-ncmp/openapi-inventory.yaml` + +with being either `8080` if running the plain Java build or retrieved using following command +if running from `docker-compose`: ```bash -VERSION=0.0.1-SNAPSHOT DB_HOST=dbpostgresql DB_USERNAME=cps DB_PASSWORD=cps docker-compose up -``` \ No newline at end of file +docker inspect \ + --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' \ + +``` + +Enjoy CPS !