aboutsummaryrefslogtreecommitdiffstats
path: root/docker-compose/README.md
diff options
context:
space:
mode:
authorClaudio D. Gasparini <claudio.gasparini@pantheon.tech>2021-02-11 08:51:06 +0100
committerBruno Sakoto <bruno.sakoto@bell.ca>2021-02-15 08:47:27 -0500
commit4e07d48caae2cdcfa2a583070c08bb572dbb683f (patch)
treeac6381295b09a9cf062425cf751d453244ee7618 /docker-compose/README.md
parent994c59050730a200d030ade14b768539089576a2 (diff)
Update docker-compose
- Add more documentation - fix application.yml location for service Issue-ID: CPS-236 Co-authored-by: Bruno Sakoto <bruno.sakoto@bell.ca> Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech> Signed-off-by: Bruno Sakoto <bruno.sakoto@bell.ca> Change-Id: I5a16f520c9536d2034c2afd1de947058d2fb13ee
Diffstat (limited to 'docker-compose/README.md')
-rw-r--r--docker-compose/README.md82
1 files changed, 68 insertions, 14 deletions
diff --git a/docker-compose/README.md b/docker-compose/README.md
index 3d68c3ff4b..ec4868cbb0 100644
--- a/docker-compose/README.md
+++ b/docker-compose/README.md
@@ -1,34 +1,88 @@
-# Docker Compose deployment example for local enviroments, CPS deployment is done via OOM
+# Building and running CPS locally
-To run the application locally using `docker-compose`, execute following command from this `docker-compose` folder:
+## Building Java Archive only
-Compile without generating the docker images
+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 -Pxnf-docker -Pcps-xnf-docker -Djib.skip
```
-Generate the docker images
+## 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 -Pxnf-docker -Pcps-xnf-docker -Dnexus.repository=""
+```
+
+* Following command builds the JAR file and generates the Docker image for specified CPS component:
+ (with `<docker-profile>` being one of `cps-docker`, `xnf-docker` or `cps-xnf-docker`):
```bash
-mvn clean install -Pcps-docker -Pxnf-docker -Pcps-xnf-docker
+mvn clean install -P<docker-profile> -Dnexus.repository=""
```
-for generate a specific type of docker images
+## 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` and uncomment desired service to be deployed, by default `cps-and-nf-proxy`
+ is enabled. You can comment it and uncomment `cps-standalone` or `nf-proxy-standalone`.
+2. Execute following command from `docker-compose` folder:
```bash
-mvn clean install -Pcps-docker
+VERSION=x.y.z-SNAPSHOT DB_HOST=dbpostgresql DB_USERNAME=cps DB_PASSWORD=cps docker-compose up -d
```
-Run the containers
+## 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
-VERSION=0.0.1-SNAPSHOT DB_HOST=dbpostgresql DB_USERNAME=cps DB_PASSWORD=cps docker-compose up -d
+docker run --name postgres -p 5432:5432 -d \
+ -e POSTGRES_DB=cpsdb -e POSTGRES_USER=cps -e POSTGRES_PASSWORD=cps \
+ postgres:12.4-alpine
```
-Run application from Intellj IDE
+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 \
+ java -classpath cps-application/target/cps-application-x.y.z-SNAPSHOT.jar:docker-compose \
+ org.springframework.boot.loader.JarLauncher
+```
+
+### 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:
+ * `Working directory`: docker-compose folder, e.g. `$ProjectFileDir$/docker-compose`
+ * `Environment variables`: `DB_HOST=localhost;DB_USERNAME=cps;DB_PASSWORD=cps`
+
+## Accessing services
+
+Swagger UI and Open API specifications are available to discover service endpoints and send requests.
+
+* `http://localhost:<port-number>/swagger-ui/index.html`
+* `http://localhost:<port-number>/v3/api-docs?group=cps-docket`
+
+with <port-number> 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}}' \
+ <cps-docker-container>
+```
-you need first to enable the maven profile desired under tab Maven
-then go to Run -> Edit configurations
- 1- Working directory -> select docker-compose folder e.g. ~/workspace/onap/cps/docker-compose/
- 2- Enviroment variables -> add variables configuration e.g. DB_HOST=127.0.0.1;DB_USERNAME=cps;DB_PASSWORD=cps \ No newline at end of file
+Enjoy CPS !