This project demonstrate load balanced Docker deployment of DICOM CStore service.
DICOM CStore service implemented using DCM4CHEE Java library. Service is deployed inside Docker and instances are scaled and load balanced using nginx.
- Java 17 or higher
- Functioning Docker setup
- Checkout repository
git clone https://github.com/madhub/dicomservices.git
- Change to cstoreservice directory
cd cstoreservice
- Invoke multistage build
docker build -t dicomdemos/dicomstorescp:1.0 -f Dockerfile-multistage . ```
- Checkout repository
git clone https://github.com/madhub/dicomservices.git
- Change to cstoreservice directory
cd cstoreservice
- Build fat jar
gradlew.bat clean jar
- Build Docker image
docker build -t dicomdemos/dicomstorescp:1.0 .
- Confirm Docker image is created successfully
docker images
Service is deployed using docker-compose with nginx load balancing DICOM assoication across instances. By default nginx port 4040 published to host. Port 4040 used for all DICOM communications
- Change to deployment\docker directory
docker-compose up --scale dicomstorescp=3
- Verify the DICOM connectivity
- Using DCMTK tools
echoscu localhost 4040
- Using DCM4CHEE Tools
Deploying service into Kubernetesstorescu -c store-scp@localhost:4040
- Using DCMTK tools