diff options
-rw-r--r-- | cmd/podman/search.go | 5 | ||||
-rw-r--r-- | docs/podman-search.1.md | 27 | ||||
-rw-r--r-- | test/e2e/search_test.go | 9 |
3 files changed, 38 insertions, 3 deletions
diff --git a/cmd/podman/search.go b/cmd/podman/search.go index 009ff8ba9..f64b822fc 100644 --- a/cmd/podman/search.go +++ b/cmd/podman/search.go @@ -345,6 +345,11 @@ func matchesOfficialFilter(filter searchFilterParams, result docker.SearchResult } func getRegistry(image string) (string, error) { + // It is possible to only have the registry name in the format "myregistry/" + // if so, just trim the "/" from the end and return the registry name + if strings.HasSuffix(image, "/") { + return strings.TrimSuffix(image, "/"), nil + } imgRef, err := reference.Parse(image) if err != nil { return "", err diff --git a/docs/podman-search.1.md b/docs/podman-search.1.md index 9cc9e1e6b..429c3c5ad 100644 --- a/docs/podman-search.1.md +++ b/docs/podman-search.1.md @@ -10,10 +10,12 @@ podman\-search - Search a registry for an image **podman search** searches a registry or a list of registries for a matching image. The user can specify which registry to search by prefixing the registry in the search term (example **registry.fedoraproject.org/fedora**), default is the registries in the -**registires.search** table in the config file - **/etc/containers/registries.conf**. +**registries.search** table in the config file - **/etc/containers/registries.conf**. The number of results can be limited using the **--limit** flag. If more than one registry is being searched, the limit will be applied to each registry. The output can be filtered -using the **--filter** flag. +using the **--filter** flag. To get all available images in a registry without a specific +search term, the user can just enter the registry name with a trailing "/" (example **registry.fedoraproject.org/**). +Note, searching without a search term will only work for registries that implement the v2 API. **podman [GLOBAL OPTIONS]** @@ -116,6 +118,27 @@ INDEX NAME fedoraproject.org fedoraproject.org/fedora fedoraproject.org fedoraproject.org/fedora-minimal ``` + +``` +$ podman search registry.fedoraproject.org/ +INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED +fedoraproject.org registry.fedoraproject.org/f25/cockpit 0 +fedoraproject.org registry.fedoraproject.org/f25/container-engine 0 +fedoraproject.org registry.fedoraproject.org/f25/docker 0 +fedoraproject.org registry.fedoraproject.org/f25/etcd 0 +fedoraproject.org registry.fedoraproject.org/f25/flannel 0 +fedoraproject.org registry.fedoraproject.org/f25/httpd 0 +fedoraproject.org registry.fedoraproject.org/f25/kubernetes-apiserver 0 +fedoraproject.org registry.fedoraproject.org/f25/kubernetes-controller-manager 0 +fedoraproject.org registry.fedoraproject.org/f25/kubernetes-kubelet 0 +fedoraproject.org registry.fedoraproject.org/f25/kubernetes-master 0 +fedoraproject.org registry.fedoraproject.org/f25/kubernetes-node 0 +fedoraproject.org registry.fedoraproject.org/f25/kubernetes-proxy 0 +fedoraproject.org registry.fedoraproject.org/f25/kubernetes-scheduler 0 +fedoraproject.org registry.fedoraproject.org/f25/mariadb 0 +``` +Note: This works only with registries that implement the v2 API. If tried with a v1 registry an error will be returned. + ## FILES **registries.conf** (`/etc/containers/registries.conf`) diff --git a/test/e2e/search_test.go b/test/e2e/search_test.go index 7b9612a35..2c85ca765 100644 --- a/test/e2e/search_test.go +++ b/test/e2e/search_test.go @@ -84,7 +84,7 @@ var _ = Describe("Podman search", func() { }) It("podman search limit flag", func() { - search := podmanTest.Podman([]string{"search", "--limit", "3", "alpine"}) + search := podmanTest.Podman([]string{"search", "--limit", "3", "docker.io/alpine"}) search.WaitWithDefaultTimeout() Expect(search.ExitCode()).To(Equal(0)) Expect(len(search.OutputToStringArray())).To(Equal(4)) @@ -120,6 +120,13 @@ var _ = Describe("Podman search", func() { } }) + It("podman search v2 registry with empty query", func() { + search := podmanTest.Podman([]string{"search", "registry.fedoraproject.org/"}) + search.WaitWithDefaultTimeout() + Expect(search.ExitCode()).To(Equal(0)) + Expect(len(search.OutputToStringArray())).To(BeNumerically(">=", 1)) + }) + It("podman search attempts HTTP if tls-verify flag is set false", func() { podmanTest.RestoreArtifact(registry) fakereg := podmanTest.Podman([]string{"run", "-d", "--name", "registry", "-p", "5000:5000", registry, "/entrypoint.sh", "/etc/docker/registry/config.yml"}) |