dicomweb-server
dicomweb-server copied to clipboard
Create Dockerfile
You're right it's a bit outdated. We can switch to latest, I was just copying from a previous docker file
-- CEO & Founder @ SemanticMD +1 281 816 5734 http://semantic.md
On Tue, Oct 22, 2019 at 1:57 PM Steve Pieper [email protected] wrote:
@pieper commented on this pull request.
In Dockerfile https://github.com/dcmjs-org/dicomweb-server/pull/20#discussion_r337746517 :
@@ -0,0 +1,8 @@ +FROM node:7.7.2-alpine
I'm curious - why this version? Seems kind of old.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/dcmjs-org/dicomweb-server/pull/20?email_source=notifications&email_token=AABMTX72VMQLYH6XWLYIYI3QP5SLHA5CNFSM4JDJ5Z52YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCI2Z2WY#pullrequestreview-305503579, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABMTXYE6ISHIGOHXB4MXGLQP5SLHANCNFSM4JDJ5Z5Q .
I'm trying to combine this with a docker compose file that also runs couchdb but running into some issues. Let me know if you were able to successfully launch both services together
Hi @sbhavani - Yes, I think it makes sense to have a docker compose to make this easy to deploy, but I haven't done that yet. I did a single dockerfile test that added couchdb and dicomweb-server to the same container, but that's not a good pattern. Then started looking into kubernetes but now thing that's overkill for most cases.
So yes, would love to see docker compose worked out. What issues did you have?
I have a tiny project I've been working on locally:
- A docker-compose that:
- Adds
dicomweb-server- Provides a "builder" for
dicomweb-server - Depends on
couchdb
- Provides a "builder" for
- Adds
couchdb- Persists to local mount point
- A quick python script that:
- Uses
dicomweb_client - If test file doesn't exist when requested from
dicomweb-server:- Seeds data with DICOM files from a local directory
- OR seeds using provided list of resolvable URIs for resources
My goal being to use it for some more-or-less immutable and local test data for a separate project. I'll be sure to share what I end up with here, and you're more than welcome to incorporate whatever bits of it you may find useful/helpful.
@sbhavani I have the start of something here:
- https://github.com/OHIF/viewer-testdata
If you have specific questions, let me know. I'll be playing with improvements as we begin to integrate our E2E tests with this. I'm also all ears for any improvements you think would make sense ^_^
services: couchdb: image: couchdb ports: - "5984:5984" dicomweb: build: . depends_on: - couchdb ports: - "5985:5985" command: npm start
This was my simple docker compose file but the issue I was having was couchdb needs to be initialized with a users table (e.g. curl -X PUT http://localhost:5984/_users) and even after doing that I was having trouble with communication between containers.
I'm sure there's an elegant way to solve this by defining networks and environment variables but I'm happy to use your single dockerfile test if that works well.
@sbhavani, hmm...
I'm just setting the hostname for each image in my docker-compose
That allows me to update my configuration so that dbServer: 'http://couchdb', is able to resolve and connect to couchdb
Hi @sbhavani , you need to update development.js to have either the ip of the host or the container name as @dannyrb suggested. In ePad, we use dicomweb-server in addition to some other containers and we have a docker-compose file and instructions on how to set it. You can download it from here and use as a reference if you want. We are binding the configuration files as volumes to the containers so that they can be updated from outside of the container. Current docker compose file uses the images that are built via dockerfiles and hosted on dockerhub but you can change it easily. The dockerfile that is used to create the image in dockerhub for dicomweb-server is in the dockerization branch. It also includes some improvements like tls and prefix support.