diff --git a/README.md b/README.md index 334bf3d..2148f00 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,13 @@ -# DeepPhe Stream Multi-Container Stack +# DeepPhe Stream Multi-Container Stack - release branch + +## Changes needed to make a release + +- 1: Place the source code zip file, for instance `v0.3.0-cr-release.zip`, to the directory `dphe-stream`. And this zip file will be used to build the `dphe-stream` docker image. +- 2: Edit the `dphe-stream/Dockerfile` and specify to use the target release version, for instance `0.3.0`. ## Overview of components and architecture -This multi-container docker stack consists of the following 2 containers as shown in the diagram: +This multi-container docker stack consists of the following 2 contaienrs as shown in the diagram: - 1 : `dphe-stream-nginx` - 2 : `dphe-stream` @@ -13,6 +18,7 @@ This multi-container docker stack consists of the following 2 containers as show - As a requirement, we do not persist information anywhere except temporarily within the jvm of the `dphe-stream` container. We only use an embedded instance of neo4j for the system to read the static ontology graph. - The REST API in the `dphe-stream` container is just a thin wrapper that exposes the endpoints to accept requests of document and patient summarizations, and it is the backend NLP pipeline that does the heavy lifting as well as returns the extracted information. + ## Overview of tools - [Docker Engine](https://docs.docker.com/install/) @@ -30,7 +36,7 @@ If you're using Linux and you don't want to preface the docker command with sudo sudo usermod -aG docker $USER ```` -The log out and log back in so that your group membership is re-evaluated. If testing on a virtual machine, it may be necessary to restart the virtual machine for changes to take effect. +Then log out and log back in so that your group membership is re-evaluated. If testing on a virtual machine, it may be necessary to restart the virtual machine for changes to take effect. Note: the following instructions with docker commands are based on managing Docker as a non-root user. @@ -38,24 +44,7 @@ These permissions do not appear to be a concern on OS X and Windows. ## Build docker images -### Dedicated private SSH key - -This is a deployment SSH key generated and used for pulling the private github repos during creating the `deepphe/dphe-stream-base` image. The image build will fail without this key. - -### Build base image - -First you'll need to git clone this repository and build the `deepphe/dphe-stream-base` base image. You'll need the dedicated private key attached to the github machine user from the host machine (E.g., `PATH/deepphe-machine-user-ssh-private-key.txt`) and pass it as a build argument as below: - -```` -cd dphe-stream-base -docker build --no-cache --build-arg SSH_PRIVATE_KEY="$(cat PATH/deepphe-machine-user-ssh-private-key.txt)" -t deepphe/dphe-stream-base:latest . -```` - -Note: replace the `PATH` with the actual directory path where this private SSH key can be found. - -We are using Docker's multi-stage build and the private SSH key is only used by the intermediate image and won't leave traces inside of the final base image. - -### Specify auth token +### Specify auth token (optional) Before starting building the child images, specify the auth token in `dphe-stream/deepphe.properties`. This auth token will be used later when interacting with the REST API calls via the standard HTTP request `Authorization` header with the Bearer scheme: @@ -72,11 +61,10 @@ A default token is provided in the `dphe-stream/deepphe.propertiers` file. For g Next go back to the project root directory where you can find the `docker-compose.yml`: ```` -cd .. docker-compose build --no-cache ```` -### Vulnerability scanning for local images +### Vulnerability scanning for local images (optional) Vulnerability scanning for Docker local images allows us to review the security state of the container images and take actions to fix issues identified during the scan, resulting in more secure deployments. The `scan` command is available by default in Docker version 20.10.x and newer. @@ -88,8 +76,8 @@ docker scan --login Once logged in, you can run the scans as follows: ``` -docker scan --dependency-tree --file ./dphe-stream/Dockerfile dphe-stream:0.4.0 -docker scan --dependency-tree --file ./dphe-stream-nginx/Dockerfile dphe-stream-nginx:0.4.0 +docker scan --dependency-tree --file ./dphe-stream/Dockerfile dphe-stream:0.2.0-cr +docker scan --dependency-tree --file ./dphe-stream-nginx/Dockerfile dphe-stream-nginx:0.2.0-cr ``` ## Start up services @@ -110,10 +98,11 @@ In security practice, the processes within a running container should not run as ```` docker-compose up -d ```` +This command spins up all the services (in the background as detached mode and leaves them running) defiened in the `docker-compose.yml` and aggregates the output of each container. -This command spins up all the services (in the background as detached mode and leaves them running) defiened in the `docker-compose.yml` and aggregates the output of each container. Make sure the port `8080` and `8181` are not already allocated, otherwise the containers would fail to start. +Note: Make sure the port `8080` and `8181` are not already allocated, otherwise the containers would fail to start. -Note: the initialization of containers takes some time, you can use the following command in another terminal window to monitor the progress: +Note: Container initialization takes some time, you can use the following command in another terminal window to monitor the progress: ```` docker-compose logs -f --tail="all" @@ -139,7 +128,7 @@ You will have the following API base URL for the REST API container: - `dphe-stream`: `http://localhost:8080/deepphe` -Please remember that you'll need to send over the auth token (specified prior the docker build) in the `Authorization` header for each HTTP request: +Note: You will need to send over the auth token, specified in `dphe-stream/deepphe.properties`, in the `Authorization` header for each HTTP request: ```` Authorization: Bearer @@ -201,7 +190,7 @@ A patient summary can only be created using document information that was cached ## Manage the contaners -### Shell into the running container +### Shell into the running container (optional) Sometimes you may want to shell into a running container to check more details, this can be done by: @@ -233,7 +222,7 @@ This command stops both containers of this project and removes them as well the Note: At this time DeepPhe Stream could be run with a single container. The multi-container stack exists to facilitate addition future workflows that may require additional containers. -## Integration tests +## Integration tests (optional) Once the containers are up running, we can execute some integration tests written in Python to verify the pipeline output by submitting some sample reports to the REST API. The tests will be executed against the `dphe-stream-nginx` container, which proxies the requests to the backend REST API service. diff --git a/docker-compose.yml b/docker-compose.yml index 72643a4..31142f9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: ./dphe-stream # Build the image with name and tag - image: deepphe/dphe-stream:0.5.0 + image: dphe-stream:0.3.0-cr hostname: dphe-stream container_name: dphe-stream init: true @@ -19,14 +19,14 @@ services: - "8181:8080" volumes: # Make log accessible on host - - "./dphe-stream/logs:/usr/src/app/dphe-stream-rest/logs" + - "./dphe-stream/logs:/usr/src/app/v0.3.0-cr-release/dphe-stream-rest/logs" networks: - dphe-stream-network dphe-stream-nginx: build: ./dphe-stream-nginx # Build the image with name and tag - image: deepphe/dphe-stream-nginx:0.5.0 + image: dphe-stream-nginx:0.3.0-cr hostname: dphe-stream-nginx container_name: dphe-stream-nginx init: true @@ -55,7 +55,7 @@ services: # Mount the integration test - "./dphe-stream-nginx/integration-test:/usr/src/app/integration-test" # Nginx reverse proxy forwarding requires the upstream service to be running and ready to accept requests - # Otherwise we'll get 502 error + # Otherweise we'll get 502 error # This 'depends_on' will run the containers in sequence, but it has no way of knowing # when the upstream service is actually ready to receive requests depends_on: diff --git a/dphe-stream-base/Dockerfile b/dphe-stream-base/Dockerfile deleted file mode 100644 index 72e246f..0000000 --- a/dphe-stream-base/Dockerfile +++ /dev/null @@ -1,86 +0,0 @@ -# ======Intermediate image====== -FROM alpine:3 AS intermediate - -# Install git and ssh -RUN apk add --no-cache git openssh - -# Add credentials on build -ARG SSH_PRIVATE_KEY - -# Set permission on the private key file -# Make sure github.com domain is accepted -# Git clone all required the repos -RUN mkdir ~/.ssh/ && \ - echo "${SSH_PRIVATE_KEY}" > ~/.ssh/id_rsa && \ - cat ~/.ssh/id_rsa && \ - chmod 400 ~/.ssh/id_rsa && \ - touch ~/.ssh/known_hosts && \ - ssh-keyscan github.com >> ~/.ssh/known_hosts && \ - git clone git@github.com:DeepPhe/dphe-onto-db.git && \ - git clone git@github.com:DeepPhe/dphe-neo4j.git && \ - git clone git@github.com:DeepPhe/dphe-core.git && \ - git clone git@github.com:DeepPhe/dphe-stream.git && \ - git clone git@github.com:DeepPhe/dphe-stream-rest.git - -# ======Final base image====== -FROM redhat/ubi8:8.6 - -LABEL description="DeepPhe Stream Docker Base Image" - -# When trying to run "yum updates" or "yum install" the "system is not registered with an entitlement server" error message is given -# To fix this issue: -RUN echo $'[main]\n\ -enabled=0\n\\n\ -# When following option is set to 1, then all repositories defined outside redhat.repo will be disabled\n\ -# every time subscription-manager plugin is triggered by dnf or yum\n\ -disable_system_repos=0\n'\ ->> /etc/yum/pluginconf.d/subscription-manager.conf - -# Set Maven version to be installed -ARG MAVEN_VERSION=3.8.6 - -WORKDIR /usr/src/app - -# Copy the repos form the intermediate image -COPY --from=intermediate /dphe-onto-db dphe-onto-db -COPY --from=intermediate /dphe-neo4j dphe-neo4j -COPY --from=intermediate /dphe-core dphe-core -COPY --from=intermediate /dphe-stream dphe-stream - -# Will do maven build individually for the following projects in separate Dockerfile -COPY --from=intermediate /dphe-stream-rest dphe-stream-rest - -# Copy everything else from host to image -COPY . . - -# Reduce the number of layers in image by minimizing the number of separate RUN commands -# Update packages -# Install the prerequisites -# Install which (otherwise 'mvn version' prints '/usr/share/maven/bin/mvn: line 93: which: command not found') and Java 8 via yum repository -# Download Maven tar file and install -# Clean all yum cache -# Install gosu for de-elevating root to deepphe user -RUN yum update -y && \ - yum install -y yum-utils && \ - yum install -y which java-1.8.0-openjdk java-1.8.0-openjdk-devel && \ - curl -fsSL https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - -C /usr/share && \ - mv /usr/share/apache-maven-$MAVEN_VERSION /usr/share/maven && \ - ln -s /usr/share/maven/bin/mvn /usr/bin/mvn && \ - yum clean all && \ - curl -o /usr/local/bin/gosu -SL "https://github.com/tianon/gosu/releases/download/1.14/gosu-amd64" && \ - curl -o /usr/local/bin/gosu.asc -SL "https://github.com/tianon/gosu/releases/download/1.14/gosu-amd64.asc" && \ - rm /usr/local/bin/gosu.asc && \ - chmod +x /usr/local/bin/gosu - -# Set environment variables for Java and Maven -ENV JAVA_HOME /usr/lib/jvm/java -ENV M2_HOME /usr/share/maven -ENV maven.home $M2_HOME -ENV M2 $M2_HOME/bin -ENV PATH $M2:$PATH - -# Install local dependencies -RUN mvn -f /usr/src/app/dphe-onto-db/pom.xml clean install -DskipTests && \ - mvn -f /usr/src/app/dphe-neo4j/pom.xml clean install -DskipTests && \ - mvn -f /usr/src/app/dphe-core/pom.xml clean install -DskipTests && \ - mvn -f /usr/src/app/dphe-stream/pom.xml clean install -DskipTests diff --git a/dphe-stream-nginx/integration-test/patientX/patientX_doc1_RAD.txt b/dphe-stream-nginx/integration-test/patientX/patientX_doc1_RAD.txt deleted file mode 100644 index 7cbead0..0000000 --- a/dphe-stream-nginx/integration-test/patientX/patientX_doc1_RAD.txt +++ /dev/null @@ -1,54 +0,0 @@ -=================================================================== -Report ID.....................1,doc1 -Patient ID....................pt123456789 -Patient Name..................PatientX -Principal Date................20100121 1345 -Record Type...................RAD -=================================================================== -[Report de-identified (Limited dataset compliant) by De-ID v.6.24.5.1] - -CLINICAL HISTORY: -50 year old peri-menopausal female who presents with new hard palpable lump -in the left breast. - -TECHNIQUE: -Full field digital mammography with CAD was performed including -routine views of both breasts, spot magnification views on the right -with a full 90 degree lateral and spot compression views on the left. - -Left breast and axillary ultrasound evaluation was performed. - -COMPARISON: -This study is compared to previous examinations dating back to 2004. - -FINDINGS: -Heterogeneously dense fibroglandular tissue is present throughout -both breasts limiting the sensitivity of the mammogram. There is no evidence -of mass or calcifications in the right breast. - -A large firm mass is seen in the upper outer left breast at the 12:30 -o'clock region. The mass measures 1x2 cm on the CC view. Calcifications are -seen adjacent to the mass. - -Ultrasound evaluation was performed on the area and a 1.2x3.4x5.6 cm hypoechoic -mass is seen in the left breast at the 12:30 o'clock region. - -Ultrasound of the left axillary lymph nodes were performed revealing multiple -abnormally thickened lymph nodes. The largest lymph node has a thickened cortex -of at least 7 mm. - -IMPRESSION: -A large hypoechoic mass at the 10:30 location of the left breast is highly -suggestive of a malignancy. The mass measures 1.2x3.4x5.6 cm. Ultrasound guided -core biopsy is recommended. - -Abnormal left axillary lymph nodes are highly suspicious of metastatic disease. - -MR evaluation of extent of disease is recommended. - -ASSESSMENT AND RECOMMENDATIONS: -ACR BI-RADS Category: -5: (Breast Imaging Left) Highly suggestive for malignancy -RECOMMENDATION:Ultrasound guided core biopsy -OVERALL ASSESSMENT: -5 - Highly suggestive for malignancy \ No newline at end of file diff --git a/dphe-stream-nginx/integration-test/patientX/patientX_doc2_SP.txt b/dphe-stream-nginx/integration-test/patientX/patientX_doc2_SP.txt deleted file mode 100644 index eafd6f3..0000000 --- a/dphe-stream-nginx/integration-test/patientX/patientX_doc2_SP.txt +++ /dev/null @@ -1,89 +0,0 @@ -=================================================================== -Report ID.....................2,doc2 -Patient ID....................pt123456789 -Patient Name..................PatientX -Principal Date................20100130 1215 -Record Type...................SP -=================================================================== -[Report de-identified (Limited dataset compliant) by De-ID v.6.24.5.1] - - -FINAL DIAGNOSIS: -PART 1: BREAST, LEFT, MODIFIED RADICAL MASTECTOMY -A. INVASIVE DUCTAL CARCINOMA IN UPPER OUTER QUADRANT, 1.3 CM IN -GREATEST DIMENSION ASSOCIATED WITH MICROCALCIFICATIONS. -B. NOTTINGHAM SCORE 8/9 (TUBULES 2, NUCLEAR GRADE 3, MITOTIC RATE 3) -NOTTINGHAM GRADE 3. -C. NO DEFINITE LYMPHOVASCULAR INVASION IDENTIFIED. -D. SURGICAL MARGINS ARE NEGATIVE. -E. TUMOR IS ESTROGEN RECEPTOR NEGATIVE, PROGESTERONE RECEPTOR NEGATIVE, -HER-2/NEU NEGATIVE WITH A KI-67 INDEX OF 45%. -F. NO EVIDENCE OF IN-SITU COMPONENT SEEN. -PART 2: AXILLARY LYMPH NODES, LEFT, BIOPSY -A. TWO OUT OF TEN AXILLARY LYMPH NODES POSITIVE FOR METASTATIC -CARCINOMA (2/10). -B. LARGEST METASTATIC TUMOR MEASURES 2.5 CM IN GREATEST DIMENSION. -C. NO EXTRACAPSULAR EXTENSION IS IDENTIFIED. - -COMMENT: -Immunostaining for AE1/AE3 supports the status of the axillary lymph node. - -Pathologist: Person9, M.D. -** Report Electronically Signed Out ** -By Pathologist: Person9, M.D. -1/30/2010 15:21 -My signature is attestation that I have personally reviewed the submitted -material(s) and the final diagnosis reflects that evaluation. - -GROSS DESCRIPTION: -The specimen is received fixed, labeled with the patient's name, initials, -medical record number and "left radical modified breast mastectomy". - -CASE SYNOPSIS: -SYNOPTIC - PRIMARY INVASIVE CARCINOMA OF BREAST -LATERALITY: Left -PROCEDURE: Modified radical mastectomy -LOCATION: Upper outer quadrant -Clock position: 12:30 -SIZE OF TUMOR: Maximum dimension invasive component: 13 mm -MULTICENTRICITY/MULTIFOCALITY OF INVASIVE FOCI: -No -TUMOR AGGREGATE SIZE: Sum of the sizes of multiple invasive tumors: -TUMOR TYPE (invasive component): Ductal adenocarcinoma -NOTTINGHAM SCORE: 8 Nuclear grade: 3 -Tubule formation: 2 -Mitotic activity score: 3 -Nottingham grade (1, 2, 3): 3 -ANGIOLYMPHATIC INVASION: No -DERMAL LYMPHATIC INVASION: No -CALCIFICATION: Yes -TUMOR TYPE, IN SITU: Not present -Percent of tumor occupied by in situ component: 0 % -SURGICAL MARGINS INVOLVED BY INVASIVE COMPONENT: -No -Distance of invasive tumor to closest margin: 10 mm -SURG MARGINS INVOLVED BY IN SITU COMPONENT: -No -Distance of in situ disease to closest margin: -PAGET's DISEASE OF NIPPLE: No -LYMPH NODES POSITIVE: 2 -LYMPH NODES EXAMINED: 10 -METHOD(S) OF LYMPH NODE EXAMINATION: -H/E stain -ONLY KERATIN POSITIVE CELLS ARE PRESENT: -No -SIZE OF NODAL METASTASES: Diameter of largest lymph node metastasis: 15 mm -LYMPH NODE METASTASIS(-ES) WITH EXTRACAPSULAR EXTENSION: -No -METASTASES TO IPSILATERAL INTERNAL MAMMARY LYMPH NODE (IF APPLICABLE): -No -SKIN INVOLVED (ULCERATION): No -NON-NEOPLASTIC BREAST TISSUE: ADH, FCD -T STAGE, PATHOLOGIC: pT1c -N STAGE, PATHOLOGIC: pN1a -M STAGE: Not applicable -ESTROGEN RECEPTORS: negative, H-score: 0 -PROGESTERONE RECEPTORS: negative, H-score: 0 -HER2/NEU: negative, 0 -HER2/NEU (FISH): Not applicable --------------------------------------------------------- diff --git a/dphe-stream-nginx/integration-test/patientX/patientX_doc3_NOTE.txt b/dphe-stream-nginx/integration-test/patientX/patientX_doc3_NOTE.txt deleted file mode 100644 index 37d4d8b..0000000 --- a/dphe-stream-nginx/integration-test/patientX/patientX_doc3_NOTE.txt +++ /dev/null @@ -1,29 +0,0 @@ -=================================================================== -Report ID.....................3,doc3 -Patient ID....................pt123456789 -Patient Name..................PatientX -Principal Date................20101202 -Record Type...................NOTE -=================================================================== -[Report de-identified (Limited dataset compliant) by De-ID v.6.24.5.1] - - -DIAGNOSIS: Stage IIA (T1 N1 M0) infiltrating ductal carcinoma, left breast, -triple negative. - -Therapy completed 9 cycles of weekly Abraxane. - -REASON FOR VISIT: Assess response to neoadjuvant chemotherapy. - -Patient92 returns to the office today for ongoing management of biopsy-proven left breast cancer with axillary lymph node metastasis. -Her initial office visit was on September 30, 2010. -Her clinical breast examination at that time was significant for a 2 cm palpable mass in the upper outer aspect of the left breast extending from 12:30 o'clock. -She also had multiple abnormally enlarged left axillary lymph nodes. - -She has now completed 9 of a planned 12 cycles of weekly Abraxane. -She has tolerated her chemotherapy overall without significant sequela. -She denies any hospitalizations. - -Her past medical history, surgical history, medications, and allergies were reviewed as noted in the electronic medical record. - -IMPRESSION: Partial response to neoadjuvant chemotherapy for a locally advanced, triple negative, left breast cancer. \ No newline at end of file diff --git a/dphe-stream/Dockerfile b/dphe-stream/Dockerfile index bb9f590..a58082f 100644 --- a/dphe-stream/Dockerfile +++ b/dphe-stream/Dockerfile @@ -1,12 +1,43 @@ -FROM deepphe/dphe-stream-base:latest +# Base image +FROM redhat/ubi8:8.6 + +# Set Maven version to be installed, default to 3.8.6 +ARG MAVEN_VERSION=3.8.6 WORKDIR /usr/src/app # Copy everything else from host to image COPY . . -# Build the application jar -WORKDIR /usr/src/app/dphe-stream-rest +# Reduce the number of layers in image by minimizing the number of separate RUN commands +# Update packages +# Install unzip, which, Java 8 via yum repository +# Download Maven tar file and install +# Unzip the DeepPhe dependencies source code +# Clean all yum cache +RUN yum update -y && \ + yum install -y unzip which java-1.8.0-openjdk java-1.8.0-openjdk-devel && \ + curl -fsSL https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar xzf - -C /usr/share && \ + mv /usr/share/apache-maven-$MAVEN_VERSION /usr/share/maven && \ + ln -s /usr/share/maven/bin/mvn /usr/bin/mvn && \ + unzip v0.3.0-cr-release.zip && \ + yum clean all + +# Set environment variables for Java and Maven +ENV JAVA_HOME /usr/lib/jvm/java +ENV M2_HOME /usr/share/maven +ENV maven.home $M2_HOME +ENV M2 $M2_HOME/bin +ENV PATH $M2:$PATH + +# Install local dependencies +RUN mvn -f /usr/src/app/v0.3.0-cr-release/dphe-onto-db/pom.xml clean install -DskipTests && \ + mvn -f /usr/src/app/v0.3.0-cr-release/dphe-neo4j/pom.xml clean install -DskipTests && \ + mvn -f /usr/src/app/v0.3.0-cr-release/dphe-core/pom.xml clean install -DskipTests && \ + mvn -f /usr/src/app/v0.3.0-cr-release/dphe-stream/pom.xml clean install -DskipTests + +# Change directory to build the REST API application jar +WORKDIR /usr/src/app/v0.3.0-cr-release/dphe-stream-rest # Remove the default application.properties # Remove the default deepphe.properties @@ -15,6 +46,7 @@ WORKDIR /usr/src/app/dphe-stream-rest # Maven build # Clear maven cache by deleting the .m2/repository directory # Copy the entrypoint script and make it executible +# Install gosu for de-elevating root to deepphe user RUN rm -rf src/main/resources/application.properties && \ rm -rf src/main/resources/deepphe.properties && \ mv /usr/src/app/application.properties src/main/resources/application.properties && \ @@ -22,7 +54,11 @@ RUN rm -rf src/main/resources/application.properties && \ mvn clean package -DskipTests && \ rm -rf /root/.m2/repository && \ cp /usr/src/app/entrypoint.sh /usr/local/bin/entrypoint.sh && \ - chmod +x /usr/local/bin/entrypoint.sh + chmod +x /usr/local/bin/entrypoint.sh && \ + curl -o /usr/local/bin/gosu -SL "https://github.com/tianon/gosu/releases/download/1.14/gosu-amd64" && \ + curl -o /usr/local/bin/gosu.asc -SL "https://github.com/tianon/gosu/releases/download/1.14/gosu-amd64.asc" && \ + rm /usr/local/bin/gosu.asc && \ + chmod +x /usr/local/bin/gosu # Set an entrypoint ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] @@ -32,6 +68,6 @@ ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] EXPOSE 8080 # Start the rest api server on port 8080 running as non-root -# Note: since the current work dir is /usr/src/app/dphe-stream-rest, the logs will be generated here too -# Thus we use /usr/src/app/dphe-stream-rest/logs for the volume mount in docker-compose.yml -CMD ["java", "-jar","-Xmx6G","/usr/src/app/dphe-stream-rest/target/deepphe-stream-rest-0.5.0.jar"] +# Note: since the current work dir is /usr/src/app/v0.3.0-cr-release/dphe-stream-rest, the logs will be generated here too +# Thus we use /usr/src/app/v0.3.0-cr-release/dphe-stream-rest/logs for the volume mount in docker-compose.yml +CMD ["java", "-jar","-Xmx6G","/usr/src/app/v0.3.0-cr-release/dphe-stream-rest/target/deepphe-stream-rest-0.3.0-cr.jar"]