Closed labra closed 2 years ago
We could dockerize all applications individually and then use docker-compose to launch them altogether. What do you think?
Yes, that's also what I was thinking.
Both server and client are containerized now, you may see the Dockerfiles in the repositories and further explanations in their README files.
After some testing I consider the images to be good enough for now, so I uploaded both of them to Docker Hub with decent READMEs too✌🏼 (api, client).
Next steps are:
Status update: I'm already deploying the full RDFShape stack locally with docker-compose without any problem. A third container using Nginx as a reverse proxy has proven to be the best way to handle connections (so that everything is accessible on port 80) and SSL certificates.
Some questions I'd like help with: Regarding the automatic recovery of failing containers, it is possible to use the healthcheck instruction in a dockerfile for Docker to mark a container as "unhealthy". However, it seems Docker itself isn't capable of restarting unhealthy containers automatically and I'm struggling to find the best solution for this problem in our use case. Some alternatives I've found:
Any ideas? @weso/rdfshape
Good! I think it's great that we already have it dockerized. I don't know if there is a CD pipeline that uploads the images to a repository right now. If not, it could be very interesting to explore this. Thus, every time something is modified in rdfshape, the corresponding image is automatically published.
Regarding the ephemeral containers (containers that can die and lift automatically), I think it's great! As I understand it, that is the philosophy of containers. Regarding how to do it, I have always used a container scheduler for it (swarm/k8). Your option 3. I don't know if the other two alternatives work. But, if you want to explore them, count on me!
Yes, I'm planning on spending some time on creating automated actions that build and upload our docker images from our repos to Docker Hub.
Regarding the ephemeral containers, I'll give it a second thought in the meantime. For now I think I'll do some testing with K8s and keep you all informed ^^.
Not sure if GitHub provides an images registry. If it does, and if it fits our needs, we can centralize our artifacts and software development pipelines on GitHub. This is related to https://github.com/weso/shex-s/issues/185.
Sounds like a good idea and alternative to Docker Hub (taking for granted that GitHub Container Registry suits us). I reckon that GCR integrates well with GitHub actions. Any opinions @labra?
Create a docker image that contains the following components:
In the case of rdfshape, some time ago we already created a docker version using sbt-native package