 5c1983644e
			
		
	
	
	
	
	5c1983644eRelated: #24973 Before:  After:  Index: ```json { "schemaVersion": 2, "mediaType": "application/vnd.oci.image.index.v1+json", "manifests": [ { "mediaType": "application/vnd.oci.image.manifest.v1+json", "digest": "sha256:5967afffdfde104ca1459286a72346baaef8b70ac153325d7a6cd85c7734ac6e", "size": 672, "platform": { "architecture": "amd64", "os": "linux" } }, { "mediaType": "application/vnd.oci.image.manifest.v1+json", "digest": "sha256:f9abfcc55320f9ff1f38eeb7dbb4bea10b29c7febfa49ccd7aab9fa02403b9f0", "size": 672, "platform": { "architecture": "arm64", "os": "linux" } }, { "mediaType": "application/vnd.oci.image.manifest.v1+json", "digest": "sha256:d70ad19d00c19e40691045cbddc3e8a5a4454c31cc454d1132b13bcaf35b6d46", "size": 566, "annotations": { "vnd.docker.reference.digest": "sha256:5967afffdfde104ca1459286a72346baaef8b70ac153325d7a6cd85c7734ac6e", "vnd.docker.reference.type": "attestation-manifest" }, "platform": { "architecture": "unknown", "os": "unknown" } }, { "mediaType": "application/vnd.oci.image.manifest.v1+json", "digest": "sha256:73bc233bf4eac96a404ce3e0430b698831a4ea7050c878d5f76d1d1f133751dd", "size": 566, "annotations": { "vnd.docker.reference.digest": "sha256:f9abfcc55320f9ff1f38eeb7dbb4bea10b29c7febfa49ccd7aab9fa02403b9f0", "vnd.docker.reference.type": "attestation-manifest" }, "platform": { "architecture": "unknown", "os": "unknown" } } ] } ``` --------- Co-authored-by: silverwind <me@silverwind.io> (cherry picked from commit 276f43330cb86e2ce6bc5a902a43f02727e009e9) Conflicts: templates/package/content/container.tmpl simplify to only skip unknown/unknown and not change the display
		
			
				
	
	
		
			92 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Go HTML Template
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Go HTML Template
		
	
	
	
	
	
| {{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"><pre class="code-block"><code>{{range .PackageDescriptor.Files}}{{if eq .File.LowerName "manifest.json"}}{{.Properties.GetByName "container.digest"}}{{end}}{{end}}</code></pre></div>
 | |
| 			</div>
 | |
| 			<div class="field">
 | |
| 				<label>{{ctx.Locale.Tr "packages.registry.documentation" "Container" "https://forgejo.org/docs/latest/user/packages/container/"}}</label>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 	</div>
 | |
| 	{{if .PackageDescriptor.Metadata.Manifests}}
 | |
| 		<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.container.images.title"}}</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}}
 | |
| 						{{if ne .Platform "unknown/unknown"}}
 | |
| 						<tr>
 | |
| 						<td><a href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .Digest}}">{{.Digest}}</a></td>
 | |
| 						<td>{{.Platform}}</td>
 | |
| 						<td>{{ctx.Locale.TrSize .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}}
 | |
| 	{{if .PackageDescriptor.Metadata.ImageLayers}}
 | |
| 		<h4 class="ui top attached header">{{ctx.Locale.Tr "packages.container.layers"}}</h4>
 | |
| 		<div class="ui attached segment tw-break-anywhere">
 | |
| 			<table class="ui very basic compact table">
 | |
| 				<tbody>
 | |
| 					{{range .PackageDescriptor.Metadata.ImageLayers}}
 | |
| 						<tr>
 | |
| 							<td>{{.}}</td>
 | |
| 						</tr>
 | |
| 					{{end}}
 | |
| 				</tbody>
 | |
| 			</table>
 | |
| 		</div>
 | |
| 	{{end}}
 | |
| 	{{if .PackageDescriptor.Metadata.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">
 | |
| 				<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 := .PackageDescriptor.Metadata.Labels}}
 | |
| 						<tr>
 | |
| 							<td class="top aligned">{{$key}}</td>
 | |
| 							<td class="tw-break-anywhere">{{$value}}</td>
 | |
| 						</tr>
 | |
| 					{{end}}
 | |
| 				</tbody>
 | |
| 			</table>
 | |
| 		</div>
 | |
| 	{{end}}
 | |
| {{end}}
 |