Feature #8333

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

Added by Brett Smith almost 2 years ago. Updated 2 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
SDKs
Target version:
Start date:
02/01/2016
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
0.5

Description

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.


Subtasks

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 with repo:tag syntaxNew2016-01-27

Has duplicate Arvados - Feature #10664: arv-keepdocker should upload images with image:tagDuplicate2016-12-05

Associated revisions

Revision 4b4a0917
Added by Tom Clegg 2 months ago

Merge branch '8333-docker-repo-tag'

closes #8333

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

History

#1 Updated by Brett Smith almost 2 years ago

  • Target version set to Arvados Future Sprints

#2 Updated by Brett Smith almost 2 years 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 3 months ago

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

#4 Updated by Tom Morris 3 months ago

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

#5 Updated by Tom Clegg 3 months ago

  • Assigned To set to Tom Clegg

#6 Updated by Tom Clegg 2 months ago

  • Status changed from New to In Progress

#7 Updated by Tom Clegg 2 months ago

#8 Updated by Peter Amstutz 2 months 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:
                sp.append("latest")
            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 2 months 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 2 months ago

8333-docker-repo-tag LGTM

#11 Updated by Anonymous 2 months ago

  • Status changed from In Progress to Resolved

Applied in changeset arvados|commit:4b4a0917a967c0ec2dd7b72c9665e0859022f120.

Also available in: Atom PDF