-
Notifications
You must be signed in to change notification settings - Fork 620
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
Add 6.0 release #553
Add 6.0 release #553
Conversation
I pushed https://github.com/docker-library/mongo/compare/1886739107c864c9a1b18e8f2d176acaf6f0e4af..091bdab11774adf475955fc46b28b4dc69fe89a2 which removes Edit: removed |
Just to record my digging on the latest Windows failure, I think this is responsible for the build failing (although the wmi log output makes that hard to be sure about):
From what I can tell, https://github.com/mongodb/mongo/blob/r6.0.0/src/mongo/installer/msi/wxs/Installer_64.wxs#L199-L203 is somehow expanding |
I think https://github.com/mongodb/mongo/blob/r6.0.0/src/mongo/installer/msi/wxs/FeatureFragment.wxs#L87-L93 and https://github.com/mongodb/mongo/blob/r6.0.0/src/mongo/installer/msi/wxs/BinaryFragment.wxs#L5-L7 are somehow relevant, and not working as expected. 🙈 |
Oops lol 🙈, the current windows install failure is our fault; the log we are digging through is what it looks like on success. mongo/Dockerfile-windows.template Lines 42 to 46 in 9c23343
|
3b44174
to
02f03df
Compare
Fixed the check for |
I've fixed the test in docker-library/official-images#12836 (so once that merges, we can restart the builds here and validate that we're still good on old versions and fixed on the new one 👍) |
More Line 340 in 9c23343
|
Gah, that one has deeper implications than the one in our test suite. 😅 🙈 Up until now, any It's inevitable that we have to do something, because We've never been particularly happy with how this script is implemented and the sorts of hacks it has to do to even function remotely in a way that makes sense, and I have to stop and wonder if we can avoid making an already annoying-to-maintain script even worse in this transition. 😬 🙈 (My gut says probably not, but I'm trying to stay optimistic -- this entrypoint script is totally out of control already with custom behavior we maintain above and beyond what MongoDB upstream maintains, supports, or even recommends, which is why we avoided creating it for so long in the first place!) |
This comment was marked as spam.
This comment was marked as spam.
versions.json
Outdated
@@ -230,5 +230,66 @@ | |||
} | |||
}, | |||
"version": "5.0.9" | |||
}, | |||
"6.0": { | |||
"changes": "https://jira.mongodb.org/issues/?jql=project%20%3D%20SERVER%20AND%20fixVersion%20%3D%20%226.0.0%22%20ORDER%20BY%20status%20DESC%2C%20priority%20DESC", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This issues doesn't seem to exists. Is this an internal one?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That comes directly from https://downloads.mongodb.org/current.json. it is not something we actively use; it is just a link taken from the upstream json.
To add some color, there are quite a few breaking changes in mongo 6 vs mongo 5 actually and things are going to break. With mongosh specifically for example, there is no more .save() method on the collection so every script whether it is Even if you created something custom to run scripts and stuff like before, the contents of all those scripts would break because it isn't backwards compatible. There is a module you can install (mongocompat I think it was) that is suppose to enable it to be backwards compatible as well but it in and of itself is a bit of a source of problem as well. So either you can include the legacy shell in your container package which then causes docker container version to do things that other versions including what is officially supported by cloud mongo to not work out of the box correctly (breaking things in a worse way i'd imagine), or you embrace the fact that 6.x means it has breaking changes from 5.x (just like how 5.x had breaking changes from 4.x) and that in order to upgrade, you will have to make changes to things. My preference is to forget backwards compatibility, axe the |
This comment was marked as spam.
This comment was marked as spam.
It's a major release version. No one can expect to blindly upgrade their image to 6.0 and have it work. With that said, from a cursory glance of the state of things right now, I'd hope it would be working (or close to it) if we But yeah, this does look tough to maintain. There seems to be a lot of handholding of Docker users in this code, for what seems to be to avoid running into potentially cryptic config/setup issues with MongoDB? Gut it all and let people prep for 6.0 the right (hard 🥲) way. |
This comment was marked as spam.
This comment was marked as spam.
d51abc4
to
3f1ee37
Compare
I've added 3f1ee37 here -- this is explicitly a breaking change as it removes all the (very, very hacky) environment variable support in favor of users doing this "correctly". I'm not thrilled about this because doing so "correctly" is quite complicated, but there are so many edge cases here that I really believe we did more harm than good by introducing them. 🙈 😞 |
https://www.mongodb.com/compatibility/docker references (I really wish we could find a good contact to ask questions like this to make sure we're representing them well 🙈) |
Ah, so this would remove support for ENV variables like Setting things up with only a few environment variables is easy after all, and it feels like one of mongo's selling points to new devs is that it's an easy to use database... It's also how other other docker images like Is there noone on the mongodb who can weigh in on this? |
For anyone trying to get mongo:6.0.0 with Docker until a version is officially released use this Dockerfile (along with entrypoint) link Also, in Dockerfile edit with this:
|
@tianon is there a tracking issue for the tests? |
Just to reiterate, I'm personally in favor of removing all the custom stuff like that. I love how easy it is to do but it should be mongo's job to officially support it better. If support for that kind of stuff is what people feel should exist, this should be a thing that uses the core mongo:6 as a baseline with a different thing to suppose customizations. Maybe something like |
Untested test fix in docker-library/official-images#13006 |
docker-entrypoint.sh
Outdated
# MongoDB 3.6+ defaults to localhost-only binding | ||
haveBindIp= | ||
if _mongod_hack_have_arg --bind_ip "$@" || _mongod_hack_have_arg --bind_ip_all "$@"; then | ||
haveBindIp=1 | ||
elif _parse_config "$@" && jq --exit-status '.net.bindIp // .net.bindIpAll' "$jsonConfigFile" > /dev/null; then | ||
haveBindIp=1 | ||
fi | ||
if [ -z "$haveBindIp" ]; then | ||
# so if no "--bind_ip" is specified, let's add "--bind_ip_all" | ||
set -- "$@" --bind_ip_all | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤦 this part is kind of important 😂
(rediscovered while testing docker-library/official-images#13006)
Edit: fixed via CMD
in 0d43dd0
Just to add my thoughts, I don't think we should remove the current entrypoint functionality. While the entrypoint is "hacky" and should probably not be used for production database setup*, it does make the image much more user friendly for local development purposes. * since a production setup is likely much more complex with things like sharding and replicas (like needing an external service to know when and which one should have |
That's fair - feel free to get rid of my commit (that's part of why I left it separate) and come up with an alternative fix 👀 |
This comment was marked as off-topic.
This comment was marked as off-topic.
Changes: - docker-library/mongo@b149de1: Merge pull request docker-library/mongo#553 from infosiftr/add-6 - docker-library/mongo@8e7e80e: Update "latest" to the 6.0 series - docker-library/mongo@06b403b: Add 6.0 release - docker-library/mongo@39f62d0: Add Debian Bookworm and Ubuntu Jammy in versions.sh (both unused)
fixes #552