Comments (14)
PR Updates
- The NodeJS components remain in the current repository.
- The Nginx component moved to it's own repository.
- The LogStash component moved to it's own repository.
- The Docker Compose component moved to it's own repository.
- Tagged all 4 repositories with
1.0.0-beta2
.
Docker Hub Updates
- @jkleinsc and myself have setup automatic build for the containers whenever a new tag is pushed to Github.
- The tag should match the regex
/^\d+\.\d+\.\d+(-[a-z]+(\d+)?)?$/
. It will match regular SemVers (like 1.0.0, 1.1.1, etc) as well as pre-releases (like 1.0.0-beta, 1.0.0-beta2, etc). - The images will be qualified with the same tag.
- The NodeJS server image can be found at hospitalrun/hospitalrun-server.
- The LogStash server image can be found at hospitalrun/hospitalrun-logstash.
- The Nginx server image can be found at hospitalrun/hospitalrun-nginx.
Please refer to the linked PRs for code changes.
Notifying @jkleinsc @tangollama @mofesola @jglovier
from hospitalrun-server.
@lalluanthoor thanks for your interest in this project. If you would like to contribute a PR with Docker improvements that would be gladly welcomed!
As far as Kubernetes or Docker Swarm, we currently don't have anyone involved in the project who has experience in those environments, but we would love to eventually support more deployment options.
We do not currently have a a CI-CD pipeline setup. I think some work may have started on that but it was never finished.
from hospitalrun-server.
@jkleinsc I have already submitted a PR #59 for the first part of my questions.
For the second part, I was going through how to setup automated Docker image builds out of a Github repository. Docker Hub already provides this feature. But for this to work, we might need to split the repository into multiple repositories, with each one producing a single Docker image.
For the third part, only some minor adjustments in the docker-compose.yml
and a separate deployment guide would be required to deploy the server on a Docker Swarm.
What are your thoughts?
from hospitalrun-server.
@lalluanthoor I think setting up automated Docker image builds would be great. If I understand it properly, I think we would need three repos:
1 - HospitalRun -- probably use this repo (hospitalrun-server)
2 - HospitalRun logstash
3 - HospitalRun nginx
It looks like the couchdb and elasticsearch containers are prebuilt containers.
from hospitalrun-server.
Proposal
Assumptions
- It is OK to store default credentials in source code.
Decomposition of Current Repository
- hospitalrun-server
conf
folderpatientimages
folder? I don't know why this folder is there.utils
folder.dockerignore
.eslintignore
Dockerfile
app.js
config-example.js
package.json
- hospitalrun-logstash
logstash
folder
- hospitalrun-nginx
nginx
folder
- hospitalrun
docker-compose.yml
DEPLOYMENT_GUIDE.md
The CODE_OF_CONDUCT.md
, README.md
, LICENSE
, .gitignore
, etc. should be there in all the repos.
The other two containers (elasticsearch and couchdb) are pre-built and we only use them as is. I also checked with the elastic team whether they have a thinner version of these images. They currently do not have any. Their recommendation was to use the open source code base directly and optimize it to our needs. Currently, we can put it as out of scope for this discussion.
Why Four and not Three
- all the images get their own repositories, clear separation, easy to manage
- releases can be made using only updating the image versions in
docker-compose.yml
, clean and independent of work in other repos - only require minimal cloning (few files and their history), easy for deployment, no build environment needed in customer side (
node
,npm
) - customisation of images are easy as well; customer can pull any of our shipped images, make necessary changes, and update the
docker-compose.yml
to use the custom image
from hospitalrun-server.
@lalluanthoor looks good to me.
As far as patientimages, it is a directory that needs to exist for the server (patient photos are saved here); Also there should be an /attachments
directory. They need to exist in the running container.
from hospitalrun-server.
@jkleinsc I need some clarifications.
- The
patientimages
andattachments
are part of which server? Node or Nginx? - Are they located in the site root or file system root?
from hospitalrun-server.
@lalluanthoor patientimages
and attachments
are part of the Node server. It needs to be able to write to those directories and serve files from those directories. They are located at site root, dictated by the value set in config.js (defaults to patientimages and attachments under the node app root directory).
from hospitalrun-server.
@jkleinsc thank you. Could you also create the empty repos? I don't have write access.
from hospitalrun-server.
@lalluanthoor I created the repos. For the "hospitalrun" one, use hospitalrun-deploy.
from hospitalrun-server.
@jkleinsc Is there any specific reason why the logstash configuration is loaded during runtime rather than adding it to the image directly? If not, I would like to make it part of the image build process and remove the volume mounting from the docker-compose.yml
.
from hospitalrun-server.
I have also closed three of the PRs for safety.
from hospitalrun-server.
@lalluanthoor I'm not sure. I can't think of why it would need to be done one way vs the other. @mofesola might be able to explain why it was built that way.
from hospitalrun-server.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from hospitalrun-server.
Related Issues (20)
- npm ERR! No valid versions available for hospitalrun HOT 3
- Investigating the implementation of HL7 HOT 7
- Create Fastify-CLI Application
- Continuous Integration
- OpenAPI/Swagger
- Add coveralls HOT 3
- Remove gitmoji to improve CI pipeline HOT 3
- Create a replication between CouchDB and Cloudant HOT 3
- LDAP support HOT 7
- Unified module to access any kind of storage
- Where is all the code? HOT 5
- Connect family member to patient HOT 9
- Drugs recurring history HOT 4
- Fasfify CouchDB integration ideas HOT 1
- fastify-autoload prevents plugins being loaded correctly HOT 2
- Create new Tenant and Admin user
- Add CouchDB JavaScript context HOT 1
- DICOMweb server HOT 1
- Move frontend dummy data script to server repo
- Update fastify from v2 to v3 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hospitalrun-server.