3 ms·
I'm using alpine with docker (https://hub.docker.com/r/_/alpine https://hub.docker.com/r/_/alpine), and one of the thing that bothers me the most is NOT having
by alpb 7y ago
I'm using alpine with docker (https://hub.docker.com/r/_/alpine https://hub.docker.com/r/_/alpine), and one of the thing that bothers me the most is NOT having the ability to just say "alpine:3". This is not an available tag (for reasons unknown to me).
If you look at many other similar official docker images like python or golang, you can just say python:3, or golang:1 so that I don't have to worry about tracking non-breaking version updates.
Not having the ability to specify "alpine:3" and not having the time to track such versions might be also why people do alpine:latest in their Dockerfiles, cross their fingers, and hope for the best.
- chme 7y agoAFAIK you can specify alpine:3.9.4 and alpine:3.9 for example. So I don't really understand your point.
- groovybits 7y agoYou should also be able to pull 'latest' as well, correct? I think the problem with specifying just 'apline:3' is that it is an ambiguous statement. Do you want alpine:3.0? Or do you want the latest in the alpine:3.x line? I think either using 'latest' or specifying a particular point release is what you'd expect. Edit: > [... ]people do alpine:latest in their Dockerfiles, cross their fingers, and hope for the best. What are you crossing your fingers for? alpine:latest should be the latest stable, and should work as intended.
- benburleson 7y agoI think semvar would say `3` means the latest of the major version 3, no matter the minor version.
- deleted 7y ago[deleted]
- alpb 7y agoLatest of anything is RARELY stable. It's stable until someone hits a critical bug in the new release, then there's a new version, but your image is still running the older version. That's why we invented the concept of LTS tracks. > I think the problem with specifying just 'apline:3' is that it is an ambiguous statement. It is not ambiguous in Docker Hub land. It's a very widely used convention that means "give me the highest 3.x.y"
- jazoom 7y agoIt's not ambiguous. As noted by the parent of the comment you're replying to, this is standard practice with Docker images/tags. Personally, I prefer to specify even the patch level to avoid any kind of surprise, but I can understand why some people would want to be able to specify just the major release.
- deleted 7y ago[deleted]
- alpb 7y ago> AFAIK you can specify alpine:3.9.4 and alpine:3.9 for example. So I don't really understand your point. Easy answer: 1. :3.9.4 will be deleted the moment there's a security vulnerability in it == all your builds broken in O(weeks) 2. :3.9 probably will be deleted in a year or two == your builds will be broken in 1-2 years. > What are you crossing your fingers for? alpine:latest should be the latest stable, and should work as intended.
- Latty 7y agoI know this wasn't really what you were saying, but just to clear something up in case someone takes the wrong thing away from this: "python:3" definitely isn't just "non-breaking version updates" - Python 3 has and will break compatibility between versions (e.g: 3.7 turns "await" and "async" into keywords).
- alpb 7y agoI guess the only thing I can say is "way to go Python"? https://semver.org https://semver.org defines what how breaking changes are supposed to be made, obviously for those following suit.
- dual_basis 7y agoLots of projects don't follow semver, unfortunately.
- empthought 7y agoPython spells its major version with two integers separated with a dot; done.
- skrimp 7y agoThe last update from 3.8 to 3.9 broke on the transition from libressl to openssl 1.1. I'm not sure such a huge version specifier would be helpful.