Docker Hub Automated Build - Tagging

MirkoMachine picture MirkoMachine · Aug 15, 2014 · Viewed 14.9k times · Source

When specifying an Automated Build on Docker Hub, I can set some settings (Type ('Branch' or 'Tag'), Name, Dockerfile Location and Docker Tag Name). But unfortunately I didn't find any documentation for those.

I assume, that when I choose Type 'Branch' and enter a Name, this is the branch from my git repository on GitHub/BitBucket being used and that Docker Tag Name results in the tag being assigned to the created image.

I played around a bit with it and found some things that are not clear to me - but I hope you can explain to me.

  • adding more than one entry results in only one tag being assigned. I used 'Branch', 'master' and '/' and 'latest' as the Docker Tag Name in the first one, 'v1' in the second one. But only 'v1' is used as a tag.

  • Using Type 'Tag' didn't result in different result. I thought this might only build an image if a git commit is tagged with this value. What is this type for?

I was looking for the ability to assign the tag 'latest' to the latest build and use a scheme like v1, v2, v3 and so on for older builds as I could do when building images locally.

Answer

Anton Drukh picture Anton Drukh · Jun 28, 2017

Automated docker image tagging is available on dockerhub! I fiddled with this recently and wanted to share my findings, jumping on this thread (hope it's ok!)

So I have a public GitHub repo with an automated build link on dockerhub. I want the :latest tag to be updated every time I push to the master branch. Also, I want :X, :X.Y and :X.Y.Z tags to be created for every release I create on GitHub (tagged as vX.Y.Z on GitHub).

Here is how the build settings config looks like to support this: dockerhub build settings

And in text so it's easier to copy-paste:

| Type   | Name                              | Dockerfile Location | Docker Tag Name |
|--------|-----------------------------------|---------------------|-----------------|
| Branch | master                            | /                   | latest          |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}            |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}.{\2}       |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}.{\2}.{\3}  |

Hope this helps!