Feature #8333

[SDKs] `arv keep docker` supports `repo:tag` image name scheme

Added by Brett Smith over 1 year ago. Updated 16 days ago.

Status:ResolvedStart date:02/01/2016
Priority:NormalDue date:
Assignee:Tom Clegg% Done:


Target version:2017-10-11 Sprint
Story points0.5Remaining (hours)0.00 hour
Velocity based estimate0 days


Right now the syntax is arv keep docker repo tag. We can keep supprting that, but adding support for arv keep docker repo:tag would be more like the rest of the Docker universe, including other Arvados Docker references like the job runtime constraint.


Task #12363: Review 8333-docker-repo-tagResolvedPeter Amstutz

Related issues

Related to Arvados - Bug #8315: [SDKs] arv-copy fails to copy a Docker image specified wi... New 01/27/2016
Duplicated by Arvados - Feature #10664: arv-keepdocker should upload images with image:tag Duplicate 12/05/2016

Associated revisions

Revision 4b4a0917
Added by Tom Clegg 16 days ago

Merge branch '8333-docker-repo-tag'

closes #8333

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <>


#1 Updated by Brett Smith over 1 year ago

  • Target version set to Arvados Future Sprints

#2 Updated by Brett Smith over 1 year ago

  • Subject changed from [SDKs] `arv keep docker` supports `arv keep docker repo:tag syntax` to [SDKs] `arv keep docker` supports `repo:tag` image name scheme

#3 Updated by Nico C├ęsar about 1 month ago

Jeff Jasper from q^2 bumped into this problem. Can we fix this?

#4 Updated by Tom Morris about 1 month ago

  • Target version changed from Arvados Future Sprints to 2017-10-11 Sprint

#5 Updated by Tom Clegg 22 days ago

  • Assignee set to Tom Clegg

#6 Updated by Tom Clegg 20 days ago

  • Status changed from New to In Progress

#7 Updated by Tom Clegg 20 days ago

#8 Updated by Peter Amstutz 17 days ago

So it turns out that you can specify a port when using a custom registry, e.g. "myregistry.io:8888/repo/image:tag"

Here's how cwltool does it:

            sp = dockerRequirement["dockerImageId"].split(":")
            if len(sp) == 1:
            elif len(sp) == 2:
                #  if sp[1] doesn't  match valid tag names, it is a part of repository
                if not re.match(r'[\w][\w.-]{0,127}', sp[1]):
                    sp[0] = sp[0] + ":" + sp[1]
                    sp[1] = "latest" 
            elif len(sp) == 3:
                if re.match(r'[\w][\w.-]{0,127}', sp[2]):
                    sp[0] = sp[0] + ":" + sp[1]
                    sp[1] = sp[2]
                    del sp[2]
            repository = sp[0]
            tag = sp[1]

#9 Updated by Tom Clegg 16 days ago

Updated & added tests for "host:port/repo/img:tag", "[::1]:port/repo/img", etc.

8333-docker-repo-tag @ 5832cd21b303fcffa4ff84390a046019274bc7cb

#10 Updated by Peter Amstutz 16 days ago

8333-docker-repo-tag LGTM

#11 Updated by Anonymous 16 days ago

  • Status changed from In Progress to Resolved

Applied in changeset arvados|commit:4b4a0917a967c0ec2dd7b72c9665e0859022f120.

Also available in: Atom PDF