Closed jalessio closed 7 years ago
I avoided latest
previously because I thought there might be some unintentional clobbering with multiple versions. What do you think about switching to a major version image name with this change, e.g. openaddr/machine6:latest
? It keeps the ambiguity at bay while still allowing us to use this convention?
I'm confused by your concerns around clobbering versions. Are you concerned that versions would be lost / not maintained on Docker Hub for backward compatibility? Or that users would inadvertently clobber their own versions? Or something else?
For the proposal to use a tag like openaddr/machine6:latest
I think the counter-example are the numerous projects which maintain multiple versions of Docker images in a single namespace. Look at 'python' on Docker Hub, for example. It has tags for versions 2.7 through 3.6 where latest
tracks the newest release on whatever version (which today is 3.6.x, but probably used to be 3.5.x). As you know, 2.7 through 3.6 covers a huge range of Python features/compatibility.
Somewhat related, I found the tag 6.x
to be confusing when I found it. I actually assume that was a placeholder and I was supposed to figure out what version number to replace the x
with. Took me a few minutes before I realized that 6.x
was the actual tag. Using the python project again as an example, they would just maintain the 6
tag for that.
In AWS, we have a configuration for each major version which references openaddr/machine:5.x
, openaddr/machine:6.x
, and so on. I don’t want those to reference full major/minor/patch versions because the updates to launch configurations would be a pain on each release. Major version upgrades often involve a short period of overlap while I bring up new versions, check that they work, and then spin down old ones. If I need to back up or slow down an upgrade, using :latest
is going to be weird. This has happened a couple times.
It sounds like the suggestion here should be: publish openaddr/machine:latest
for the benefit of users, but stick with major version tags for the deployed configurations. Also, borrow Python’s tag conventions and switch to e.g. openaddr/machine:6
instead of the confusing 6.x
.
I like the idea of publishing openaddr/machine:latest
for use by people (like me) who can follow instructions to a T but can't easily get outside of the box for ops-related things. As a person who barely comprehends those sorts of things, the instructions should be consistent between steps 1 and 3. That is, step 1 says to pull openaddr/machine:6.x
but that's not copied into step 3 where latest
is assumed (I think) so I had to specify openaddr/machine:6.x
when running docker.
This minor snag aside, I'm very happy with how easy it is to run individual sources locally using docker!
I remembered another reason I avoided :latest
until now: with potential releases for old versions interleaved with newer ones the tag might accidentally end up referring to a backport release. It’s not really guaranteed to be newer, for example during the week of April 20. This isn’t impossible to workaround, just a reason I had for not messing with latest
when it didn’t seem necessary.
This is in response to #641
prereq
andmachine
images withlatest
taglatest
tag to Docker HubAnd my editor deleted a bunch of whitespace in the
install.md
.From an ✈️ :)