| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- {{if eq .PackageDescriptor.Package.Type "container"}}
- <h4 class="ui top attached header">{{ctx.Locale.Tr "packages.installation"}}</h4>
- <div class="ui attached segment">
- <div class="ui form">
- <div class="field">
- <label>{{svg "octicon-terminal"}} {{ctx.Locale.Tr "packages.container.pull"}}</label>
- {{if eq .PackageDescriptor.Metadata.Type "helm"}}
- <div class="markup"><pre class="code-block"><code>helm pull oci://{{.PackageRegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}} --version {{.PackageDescriptor.Version.LowerVersion}}</code></pre></div>
- {{else}}
- {{$separator := ":"}}
- {{if not .PackageDescriptor.Metadata.IsTagged}}
- {{$separator = "@"}}
- {{end}}
- <div class="markup"><pre class="code-block"><code>docker pull {{.PackageRegistryHost}}/{{.PackageDescriptor.Owner.LowerName}}/{{.PackageDescriptor.Package.LowerName}}{{$separator}}{{.PackageDescriptor.Version.LowerVersion}}</code></pre></div>
- {{end}}
- </div>
- <div class="field">
- <label>{{svg "octicon-code"}} {{ctx.Locale.Tr "packages.container.digest"}}</label>
- <div class="markup">
- <div class="code-block-container code-overflow-scroll">
- <pre class="code-block"><code>
- {{- range .PackageDescriptor.Files -}}
- {{- if eq .File.LowerName "manifest.json" -}}
- {{- .Properties.GetByName "container.digest" -}}{{"\n"}}
- {{- end -}}
- {{- end -}}
- </code></pre>
- </div>
- </div>
- </div>
- <div class="field">
- <label>{{ctx.Locale.Tr "packages.registry.documentation" "Container" "https://docs.gitea.com/usage/packages/container/"}}</label>
- </div>
- </div>
- </div>
- {{if .PackageDescriptor.Metadata.Manifests}}
- <h4 class="ui top attached header">{{ctx.Locale.Tr "packages.container.images"}}</h4>
- <div class="ui attached segment">
- <table class="ui very basic compact table">
- <thead>
- <tr>
- <th>{{ctx.Locale.Tr "packages.container.digest"}}</th>
- <th>{{ctx.Locale.Tr "packages.container.multi_arch"}}</th>
- <th>{{ctx.Locale.Tr "admin.packages.size"}}</th>
- </tr>
- </thead>
- <tbody>
- {{range .PackageDescriptor.Metadata.Manifests}}
- {{/* "unknown/unknown" is attestation-manifest, so we should skip it */}}
- {{if ne .Platform "unknown/unknown"}}
- <tr>
- <td>
- <a class="tw-font-mono" href="{{$.PackageDescriptor.PackageWebLink}}/{{$.PackageDescriptor.Version.LowerVersion}}/{{PathEscape .Digest}}">
- {{StringUtils.TrimPrefix .Digest "sha256:" | ShortSha}}
- </a>
- </td>
- <td>{{.Platform}}</td>
- <td>{{FileSize .Size}}</td>
- </tr>
- {{end}}
- {{end}}
- </tbody>
- </table>
- </div>
- {{end}}
- {{if .PackageDescriptor.Metadata.Description}}
- <h4 class="ui top attached header">{{ctx.Locale.Tr "packages.about"}}</h4>
- <div class="ui attached segment">
- {{.PackageDescriptor.Metadata.Description}}
- </div>
- {{end}}
-
- {{/* a container manifest may contain sub manifests, so here we try to display some information of the sub manifest,
- not perfect, just better than before */}}
- {{$imageMetadata := .ContainerImageMetadata}}
- {{if $imageMetadata.ImageLayers}}
- <h4 class="ui top attached header flex-text-block">
- {{ctx.Locale.Tr "packages.container.layers"}}
- {{/* only show the platform if the image metadata is not the package's, which means that it is a sub manifest */}}
- {{if ne .ContainerImageMetadata .PackageDescriptor.Metadata}}
- <span class="tw-text-sm flex-text-inline" title="{{ctx.Locale.Tr "packages.container.details.platform"}}">
- ({{svg "octicon-cpu" 12}} {{.ContainerImageMetadata.Platform}})
- </span>
- {{end}}
- </h4>
- <div class="ui attached segment tw-break-anywhere">
- <table class="ui very basic compact table tw-font-mono">
- <tbody>
- {{range $imageMetadata.ImageLayers}}
- <tr>
- <td>{{.}}</td>
- </tr>
- {{end}}
- </tbody>
- </table>
- </div>
- {{end}}
- {{if $imageMetadata.Labels}}
- <h4 class="ui top attached header">{{ctx.Locale.Tr "packages.container.labels"}}</h4>
- <div class="ui attached segment">
- <table class="ui very basic compact table tw-font-mono">
- <thead>
- <tr>
- <th>{{ctx.Locale.Tr "packages.container.labels.key"}}</th>
- <th>{{ctx.Locale.Tr "packages.container.labels.value"}}</th>
- </tr>
- </thead>
- <tbody>
- {{range $key, $value := $imageMetadata.Labels}}
- <tr>
- <td class="tw-align-top">{{$key}}</td>
- <td class="tw-break-anywhere">{{$value}}</td>
- </tr>
- {{end}}
- </tbody>
- </table>
- </div>
- {{end}}
- {{end}}
|