docker icon indicating copy to clipboard operation
docker copied to clipboard

Naming Conventions

Open AustinDeric opened this issue 8 years ago • 5 comments

We need to formalize naming conventions for these docker images. Currently the naming convention is: rosindustrial/: or when there are a lot of layers we just name the image something (such as noether and core): rosindustrial/:

  • How do we handle versions of layers (for example, VTK 7.1 and 8.0)?
  • How do we make the names short and easy to use while still being descriptive?

AustinDeric avatar Jun 26 '17 13:06 AustinDeric

How do we handle versions of layers (for example, VTK 7.1 and 8.0)?

I am proposing we add the versions of additional layers to the version portion of the tag. For example,

  • Nvidia base image 8.0: -- rosindustrial/ros-core-nvidia:kinetic-8.0
  • VTK 7.1 built on the nvidia image above: -- rosindustrial/core-vtk-nvidia:kinetic-7.1
  • PCL 1.8 built on the VTK image above: -- rosindustrial/noether-nvidia:kinetic-1.8 -- if older versions are needed (such as vtk 7.1 or nvidia 8.0) this could become rosindustrial/noether-nvidia:kinetic-1.8-7.1-8.0

I think we should also require the intended tag to be a LABEL in the docker file. In the PCL example above, this would add the line: rosindustrial/noether-nvidia:kinetic-1.8

We should also support a latest tag.

I am trying to balance usability with descriptive tags. Previous tags, such as rosindustrial/noether, shall be deprecated but not chagned. Lastly, i am considering putting together a formal markdown document for these naming conventions. If agreed upon, this issue will be closed. We can keep the document with the repo, perhaps the readme?

AustinDeric avatar Jul 06 '17 14:07 AustinDeric

rosindustrial/noether-nvidia:kinetic-1.8-7.1-8.0

This looks complicated.. How many combinations do you want to support?

mathias-luedtke avatar Jul 06 '17 14:07 mathias-luedtke

It is complicated and i am not happy with it. Do you have any suggestions?

I would like to keep it as simple as possible and still be able to differential different versions of each layer. It should be noted that there will always be rosindustrial/noether-nvidia:latest and rosindustrial/noether-nvidia:kinetic if you don't care about configuration management.

AustinDeric avatar Jul 06 '17 15:07 AustinDeric

It is complicated and i am not happy with it. Do you have any suggestions?

Not really :-/

With rosindustrial/noether-nvidia:kinetic-1.8-7.1-8.0 the numbers are ambiguous, other options:

  • rosindustrial/noether-nvidia:kinetic-pcl1.8-vtk7.1-nvidia8.0
  • rosindustrial/noether-nvidia8.0:kinetic-pcl1.8-vtk7.1

This is even longer, but more explicit. It's easy to get which number the user has to change.

mathias-luedtke avatar Jul 06 '17 16:07 mathias-luedtke

ok, i am going to incorporate this feedback into the readme. The summary is:

  • 'latest': every ros industrial docker image will have a "latest" tag. for example rosindustrial/noether-nvidia:latest which can also be refereed to as rosindustrial/noether-nvidia. this image will have the latest release of all layers. in this case it would be lunar with the latest pcl and vtk.
  • 'ros-distro': every ros industrial docker image will have a ros-distro related tag such as 'kinetic'. this image will have the latest of all layers based on the kinetic release.
  • 'strict configuration management': if you're application needs specific layers, then we will use the naming convention rosindustrial/noether-nvidia:kinetic-pcl1.8-vtk7.1-nvidia8.0
  • we will require the LABEL tag "image name"

AustinDeric avatar Jul 06 '17 16:07 AustinDeric