Closed frafra closed 1 year ago
w.r.t. ubuntu version, agreed - the base image is too old. Hopefully, this can be upgraded pretty easily.
For splitting into multiple docker containers, it's possible, but there's a usability/legacy story behind the current mess.
The earliest iterations of jobson were developed as separate repositories (jobson
, previously SUEDE
in Gaia; and jobson-ui
). Those were published separately, with separate docker guides. Those guides followed the usual docker manta of "each service should have one Dockerfile".
Practically, this meant that the earliest deployments of jobson
involved something like 2 images, one jobson
one (a custom openjdk-based image) and one standard nginx one (that uses a volume mount or similar for mapping the UI, with relevant portmapping between the containers). This approach was generally considered "best practices", dev-wise, because everything was separated and the code dependencies etc. were minimized.
However, when I was pushing for a 1.0 release (/w YouTube videos, etc.), I conducted some ad-hoc usability tests with friends, researchers, and other developers (e.g. by asking them to deploy their own jobson
instance). Those tests indicated that most of the target demograph (e.g. researchers, hobbyists) weren't entirely comfortable with setting up multiple inter-connected (via portmaps, etc.) docker containers. The testing also revealed a more general problem, which was that users generally hated the separation of the server part of Jobson from the UI part.
So, based on that feedback, I spent a few weeks just focusing on creating a build for jobson that builds everything (server, UI, documentation, packages, docker, etc.) end-to-end. That build code (incl. the Dockerfile) is probably the messiest part of the source code right now--it was written in a very short amount of time to specifically fulfill the purpose of making it easier for downstream users to get up and running--but it fulfills a fairly important role for users who don't care about the separation between the UI and the server.
The above is a roundabout way of explaining that:
Dockerfile
s, but my documentation and v1.0 YouTube videos doubled in length because I had to spend an inordinate amount of time communicating the difference between the JSON api and the UI, connecting containers, etc.Dockerfile
)So I'd suggest, for your improvements:
jobson-docker-server
, jobson-docker-ui
)Another niggle.: I personally have almost no time to develop jobson. I maintain it occasionally (and, clearly, feel passionate enough about its history to write lengthy issue replies), but my development interests are currently focused on fully-integrated native applications (C++, Rust, etc.), rather than web stack development. There has been no development funding to support jobson, etc. for around 5 years now. I mostly only work on it whenever I have a spare day here or there ☹️
So any support is definitely welcome, and if you're worried that I might disagree or bounce something then feel free to keep asking questions in issues etc. - the time taken to write this is probably still an order of magnitude less than the time taken to develop, integrate, document, and ship something.
821eae5b updates the base image from 16.04 to 20.04
I'll need to double-check that this doesn't break anything internal to jobson before minting 1.0.14, it looks fine but needs investigation.
Closing this,
Thanks for the input, but the project has has a Jobson is effectively unmaintained
notice for 10 months now, and has had no further changes since then, so I am closing all issues and archiving the project until further notice.
https://github.com/adamkewley/jobson/blob/b5c014a20719dc410af68f18347a96a559618f67/jobson-docker/Dockerfile#L1
I would have sent a PR already, but I think it would be better to have two different Docker images (one for nginx, the other for jobson), and I also think that the Dockerfile should be self-contained, instead of copying files that need to be generated externally, so I prefer to open some issues before moving forward :)