-
Notifications
You must be signed in to change notification settings - Fork 227
Pending improvents in the Docker/Docker Compose/k8s workflow #446
Comments
So, I'll start the discussion :) I'll comment on the ideas I have some opinion I want to share. The rest are fine by me.
|
Hey @ggalmazor, thanks for getting this going!
It's true that the instructions will vary widely across providers. I tend to strongly believe in managed DBs, particularly for a project like this, so I'd suggest just providing links to the provider's help docs on "how to set up a postgresql." The configuration will be the same - it's how you get the DB that's different. We can work on automating this a bit, maybe, but I don't see a whole lot of value there. Similarly, how you get yourself a Kubernetes in the first place can vary widely across providers. GKS, EKS, and AKS are all a bit unique in their own way and you always have the option of spinning a Kubernetes up for yourself on bare instances. Again, we should provide recommendations, but I suggest pointing people to first-party help docs (or blog posts, such as my series.)
I don't see any issue with the current Docker file, now that my entrypoint tweaks are in. As I recall it, it's much lighter than the Docker image I'm currently using in production. My only remaining thought with the Docker build process is that it's not currently tagging itself as aggregate:latest, which would be a lot simpler than copying around the weird tag that is autogenerated. It probably should tag itself as both. This would also make it easier to keep the docs up to date as they would apply whether someone pulled the image from Docker Hub or built it locally.
We can ignore this for now. It mostly came out of my annoyance with typing:
And not really knowing what that did. That being said, my background isn't Java, so that tooling is probably already familiar with your base (in the same way that Absolutely agree that a lot of this pain would also be solved with better docs (although I personally believe that if you have to write docs, it's too late.) This could also be baked into a CLI as well, though - the only advantage of a Makefile is that it essentially creates a CLI in a standard way.
We can double check this once we add native DB support. That being said, as you've already mentioned, permanent volumes in container environments is a bit tricky and I'm going to suggest that we start with suggesting users use a managed DB and leave the DB in container trickiness to advanced users (it's def possible! but most users are much better off using a hosted DB.) |
Thanks for your comments. I think we're in agreement overall. Some of the stuff we're talking about will have to be addressed further down the road but I think we're composing a fine list of actionable tasks nevertheless.
Thanks! That makes sense and I've added to the main list. |
I'm not sure if this is still an active concern, but I recently tried automating docker builds of aggregate for one of my own projects. I ended up creating a github action to build and deploy, although I think it probably can also be done directly through docker hub / github integration with an additional build hook. The action can be found here: The corresponding docker file is published here: I'm also planning to add a separate build for use with In any case, let me know if it's of any use to you. (update - realised docker-compose works fine with existing build, I just needed to pass a |
Thanks for the update, @chrismclarke! One thing you may want to do is share your actions and docker file in a thread at https://forum.opendatakit.org/c/development/5 so it's a little more visible for folks who may benefit from it in the short term. |
This is a follow-up issue to @brettneese's recent work. We can use this issue's description as a backlog of things we agree on doing.
Ready-ish:
/docs
describing how to deploy in k8s using a managed dblatest
Ideas:
Improve Docker/Docker Compose file structureLet's discuss each point. We can cross things we won't be doing or add new things.
The text was updated successfully, but these errors were encountered: