-
-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rethinkdb 2.3.6 Alpine version #45
base: master
Are you sure you want to change the base?
Conversation
Looks good enough to me. Covers most of my thoughts from #40 (I added a commit to tag the Alpine release), and while I'm generally no fan of adding foreign-tree dependencies to official images, If there are no objections from the relevant parties (cc @tianon, @yosifkit, anybody else who's currently wrangling best practices for Docker, and the new RethinkDB maintainers pinged below), I think I'll probably merge it some time in mid-October (I'm technically on vacation for the next week and a half). That said, since this would be a (moderate) functional change to the image, I'm not sure I'd want to push it to the official repositories until I've had a look at introducing the other outstanding changes proposed to coincide with any such breaking change in #44, namely running as a non-root user (#39) and dropping the RebirthDB folks (ping @srh @grandquista @atris @floydkots @gabor-boros and anybody I might have missed): are you planning on cutting a new release of RethinkDB in the next couple months (as rethinkdb/rethinkdb#27 notes, there aren't currently any published/standing milestones)? If Alpine is due to have a RethinkDB 2.4 (or, ideally, 3.0, as it looks like the coming changes in the |
I would argue that it's become somewhat of a standard and is definitely a best practice for the official images to be built from source and not just installing a build from another repo. This gives complete control over what's in the |
From a WIP "official images" FAQ:
|
My own concern with this PR is that the package being installed is not provided by the project, so updates to it are somewhat outside the project's control. |
Which one package did you mean? |
@xemuliam, what @tianon is saying is that the RethinkDB package is pulled from Alpine Linux packaging and so any version bumps or other updates will have to go through Alpine's packaging process. This usually means it will have to wait for up to 6 months for the next OS release. This isn't great when trying to closely represent upstream (RethinkDB org) and stay as close to their supported releases as possible. See openjdk for an example where we rely on Alpine and Debian packages and are thus almost always behind the bleeding edge releases: docker-library/openjdk#150 (comment) (we rely on the packages because of the jdk build complexity as outlined in the linked comment). |
@yosifkit thanks for clarification. |
Supporting two separate types of build adds complexity and work for the maintainers. It also means that stable releases (which most people will be using) will have a delay when point releases happen and then the availability of the stable versions is tied to the release schedule of Alpine (as yosifkit pointed out). |
Quick note that official images builds do not support multi-stage builds: docker-library/official-images#3383. |
When can we expext a new official docker image for rethinkdb? |
Not until I can get a satisfactory answer for all the concerns raised in #44. |
Also, this isn't strictly a blocker, but there isn't much motivation for anybody to put together a new release image when there hasn't been a new release of RethinkDB for almost two years. |
Closing this PR, too - we need a version that does its own build instead of depending on Alpine's packaging. See #44 (comment). |
Reopening per #44 (comment) |
Alpine-linux based Docker image for RethinkDb 2.3.6
Latest Alpine linux image + native Alpine package for RethinkDb.
jq package is also added to be able to easily work with JSON data on RethinkDB host if required.
All settings are completely similar to original Debian-based image, however Alpine-based final image size is 3+ times less than original.