Revision c36fdec1
Added by Partha Aji almost 8 years ago
app/helpers/containers_helper.rb | ||
---|---|---|
77 | 77 |
text_field_tag(name, val, options) |
78 | 78 |
end |
79 | 79 |
|
80 |
def hub_url(image) |
|
81 |
if image['is_official'] |
|
82 |
"https://registry.hub.docker.com/_/#{image['name']}" |
|
83 |
else |
|
84 |
"https://registry.hub.docker.com/u/#{image['name']}" |
|
85 |
end |
|
86 |
end |
|
87 |
|
|
88 | 80 |
# Compatibility fixes - to be removed once 1.7 compatibility is no longer required |
89 | 81 |
if SETTINGS[:version].to_s.to_f <= 1.7 |
90 | 82 |
def trunc_with_tooltip(text, length = 32) |
Also available in: Unified diff
Fixes #10404 - Finds correct repo name for Docker Hub registry
Bug is stated as follows
on centos 7 ->
$ docker version
Client version: 1.5.0-dev
Client API version: 1.18
Go version (client): go1.3.3
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io: docker.io/centos The official build of CentOS. 978 [OK]
docker.io: docker.io/ansible/centos7-ansible Ansible on Centos7 40 [OK]
.....
On fedora 20 ->
$ docker version
Client version: 1.5.0
Client API version: 1.17
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 978 [OK]
ansible/centos7-ansible Ansible on Centos7 40 [OK]
......
Note the "docker.io: " prefix for the centos 7 name columns
http://rhelblog.redhat.com/2015/04/15/understanding-the-changes-to-docker-search-and-docker-pull-in-red-hat-enterprise-linux-7-1/
has details on why thats the case.
When you ask foreman-docker "search centos from docker hub", it gives
you different names based on whether the docker compute resource is
running on el7 or fedora 20. You then select an image and it shows the
tags for that. Based on your selections it picks "NAME" as the repo name
and chooses the tag. This works for docker compute instance running on
f20 and used to work for docker instance on el7.
Anyway problem is simple -> "docker.io: docker.io/centos" is not a valid
repo name. So foreman-docker has to somehow infer that
"docker.io/centos" is what the repo name should be and strip out
"docker.io: " while it should some how also work for
"my-other-registry.com:4000/cool-repo" and not strip out
"my-other-registry.com:4000".
This commit achieves to do that.
Also removing the hub_url code generation code because we'd need some
logic that converts docker.io/_/centos to
hub.registry.docker.com/_centos_/ and also work for rhel and regular
cases.