mirror of
https://github.com/portainer/portainer.git
synced 2025-08-04 21:35:23 +02:00
feat(app): limit the docker API version supported by the frontend (#12295)
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
This commit is contained in:
parent
8cbd23c059
commit
ac5491e864
227 changed files with 4702 additions and 3411 deletions
70
app/docker/models/imageDetails.ts
Normal file
70
app/docker/models/imageDetails.ts
Normal file
|
@ -0,0 +1,70 @@
|
|||
import { ImageInspect } from 'docker-types/generated/1.41';
|
||||
|
||||
type ImageInspectConfig = NonNullable<ImageInspect['Config']>;
|
||||
|
||||
export class ImageDetailsViewModel {
|
||||
Id: ImageInspect['Id'];
|
||||
|
||||
Parent: ImageInspect['Parent'];
|
||||
|
||||
Created: ImageInspect['Created'];
|
||||
|
||||
RepoTags: ImageInspect['RepoTags'];
|
||||
|
||||
Size: ImageInspect['Size'];
|
||||
|
||||
DockerVersion: ImageInspect['DockerVersion'];
|
||||
|
||||
Os: ImageInspect['Os'];
|
||||
|
||||
Architecture: ImageInspect['Architecture'];
|
||||
|
||||
Author: ImageInspect['Author'];
|
||||
|
||||
// Config sub fields
|
||||
|
||||
Command: ImageInspectConfig['Cmd'];
|
||||
|
||||
Entrypoint: Required<ImageInspectConfig['Entrypoint']>;
|
||||
|
||||
ExposedPorts: Required<ImageInspectConfig['ExposedPorts']>;
|
||||
|
||||
Volumes: Required<ImageInspectConfig>['Volumes'];
|
||||
|
||||
Env: Required<ImageInspectConfig>['Env'];
|
||||
|
||||
Labels: ImageInspectConfig['Labels'];
|
||||
|
||||
// computed fields
|
||||
|
||||
Used: boolean = false;
|
||||
|
||||
constructor(data: ImageInspect) {
|
||||
this.Id = data.Id;
|
||||
// this.Tag = data.Tag; // doesn't seem to be used?
|
||||
this.Parent = data.Parent;
|
||||
this.Created = data.Created;
|
||||
// this.Repository = data.Repository; // doesn't seem to be used?
|
||||
this.RepoTags = data.RepoTags;
|
||||
this.Size = data.Size;
|
||||
this.DockerVersion = data.DockerVersion;
|
||||
this.Os = data.Os;
|
||||
this.Architecture = data.Architecture;
|
||||
this.Author = data.Author;
|
||||
this.Command = data.Config?.Cmd;
|
||||
|
||||
let config: ImageInspect['Config'] = {};
|
||||
if (data.Config) {
|
||||
config = data.Config; // this is part of OCI images-spec
|
||||
} else if (data.ContainerConfig) {
|
||||
config = data.ContainerConfig; // not OCI ; has been removed in Docker 26 (API v1.45) along with .Container
|
||||
}
|
||||
this.Entrypoint = config.Entrypoint ?? [''];
|
||||
this.ExposedPorts = config.ExposedPorts
|
||||
? Object.keys(config.ExposedPorts)
|
||||
: [];
|
||||
this.Volumes = config.Volumes ? Object.keys(config.Volumes) : [];
|
||||
this.Env = config.Env ?? [];
|
||||
this.Labels = config.Labels;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue