Monday 14 May 2018

Run OpenCDS (Docker)

1.- Clone docker project:


2.- The docker project has the following structure:

.
├── Dockerfile
├── files
│   ├── img_scripts
│   │   └── run.sh
│   ├── maven
│   │   └── settings.xml
│   ├── opencds
│   │   ├── knowledgeModules.xml
│   │   ├── opencds.properties
│   │   └── sec.xml
│   └── tomcat
│       ├── manager.xml
│       ├── setenv.sh
│       └── tomcat-users.xml
└── readme.txt


We need to add the opencds WAR file and a sample knowledge repository inside of the opencds folder.  These files can be downloaded from https://opencds.atlassian.net/wiki/spaces/OP/pages/18382934/Releases



Rename the files as shown below.  Note that we have change the zip extension of the sample knowledge module to jar extension

opencds
├── knowledgeModules.xml
├── opencds-decision-support-service.war
├── opencds-knowledge-repository-data.jar
├── opencds.properties
└── sec.xml


3.- Build docker image running the following command:

docker build -t="opencds/opencds" .


4.- Run container

docker run -it -p 38080:8080 --name opencds opencds/opencds /bin/bash

Inside of the container change directory to the tomcat/bin folder:

cd /usr/local/tomcat/bin

Run the tomcat instance:

./catalina run

The wsdl should be available in localhost:38080/opencds-decision-support-service?wsdl 

5.- Test the service with SoapUI.  You can download a sample project from here 

Open the request demo on soapui:


Make sure that the target url is localhost:38080

Note that the payload is encoded as base64.  You can decode the payload using this online tool 

Click on the green arrow to send the request.  The response is also decoded in base64: