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.
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 themaster
branch. Also, I want:X
,:X.Y
and:X.Y.Z
tags to be created for every release I create on GitHub (tagged asvX.Y.Z
on GitHub).Here is how the build settings config looks like to support this:
And in text so it's easier to copy-paste:
Hope this helps!
Usman answered with a workaround for a similar question in https://stackoverflow.com/a/26107743/155689
Basically
As you can see I have done this for this automated build
A few months ago I contacted docker support about explicitly providing version numbers and that was not supported at the time.
What you specify on the docker hub is the git tag/branch that will be watched. The result of the build will always be tagged
latest
.My solution to assign the tag "latest" to the latest build is to use the following configuration in the automated build:
Whenever there is a commit in master, a new build with tag "latest" is created.
There was a problem a few days ago, where the automated build used the branch name as the tag name, so you might found a couple of builds with the "master". This is fixed: https://forums.docker.com/t/automated-builds-not-tagging-latest/683
This is VERY EASY in 2 STEPS ...
STEP 1 - Click the Automated Build link
STEP 2 - Add multiple automated builds to the same docker repo (most people do not know you can add multiple automated builds) by clicking the BLUE PLUS BUTTON (see image below)
In the example in the image above I am ...
Note that the github tag must exist!
NOW when I click save and trigger build 2 builds are started, one for the latest tag and one for the 0.1.0 tag.
Simple when you know how :) Thought I'd provide a full answer here since this is poorly documented.
I haven't used this feature yet so I can be wrong, but today when I went to the
build settings
tab and selectedtag
for the second type of build, it automatically had the regex/.*/
which will select all tags.I'll update this as soon as I test it.