Open itskingori opened 2 years ago
Hi @itskingori
Thank you for the interest in this project and for submitting this issue I'm currently on vacation but I'll take some time to review this issue as soon as I get back. If you have a PR feel free to submit it!
Get back to you soon
@aviggiano That's alright. Check out https://github.com/aviggiano/redis-roaring/pull/99 when you get back.
@hadrianvalentine @zacblazic Just tagging you guys so that you're in the loop.
At the moment, there's only one version of the image on Docker Hub and that's been set to
:latest
i.e.sha256:0c4e97a
. Typically one would be able to specify the version that you want to avoid implicit upgrades (especially since we intend to use this in aproduction
environment). I think this would be a hard requirement before https://github.com/aviggiano/redis-roaring/issues/64 can be closed.And so I have been trying to build the Docker image for myself so that I can lock in the versions and noticed a few things:
deps/
are pointing to really old versions:fd6f6ff...v0.4.0
)3d8709d...v1.0.2
)58f79e2...6.2.6
)8dc8d6f...2.0.0
)Dockerfile
is always pulling the latest Redis. This implicitly means we're implicitly pulling the latest non-rc image i.e.redis:6.2
orredis:6.2.6
or6.2.6-bullseye
etc (not entirely sure how it chooses). https://github.com/aviggiano/redis-roaring/blob/4fa6e4ebebe72cea5d23b4791812e09d4973d35c/Dockerfile#L1.configure.sh
script builds the module against the outdated packaged dependencies. Since we don't havegit submodule update --remote
it uses the SHA checked out against the submodule. I don't think adding--remote
would be the solution as that would update the submodule to HEAD of the main branch (which is another implicit upgrade). https://github.com/aviggiano/redis-roaring/blob/4fa6e4ebebe72cea5d23b4791812e09d4973d35c/configure.sh#L6FROM
).On that last point you can see that the packaged Redis in the image from the upstream image is current ...
But the results of the build are different ...
I thought of using the exact SHA of the Docker image with something like this ...
But I'm not sure that is reliable either as I the Dockerfile used to build that image doesn't seem to be similar to the one in this repository.
There's a step in there that makes it look like we're copying in other files into the image ...