Merge pull request #3191 from nextcloud/enh/1581/image_tag

add image_tag to containers definition
This commit is contained in:
Simon L 2023-08-21 14:37:27 +02:00 committed by GitHub
commit b890fc211f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 2 deletions

View file

@ -96,6 +96,10 @@
"pattern": "^[A-Z_]+$"
}
},
"image_tag": {
"type": "string",
"pattern": "^[a-z0-9.-]+$"
},
"devices": {
"type": "array",
"items": {

View file

@ -33,6 +33,7 @@ class Container {
private bool $readOnlyRootFs;
private array $tmpfs;
private bool $init;
private string $imageTag;
private DockerActionManager $dockerActionManager;
public function __construct(
@ -56,6 +57,7 @@ class Container {
bool $readOnlyRootFs,
array $tmpfs,
bool $init,
string $imageTag,
DockerActionManager $dockerActionManager
) {
$this->identifier = $identifier;
@ -78,6 +80,7 @@ class Container {
$this->readOnlyRootFs = $readOnlyRootFs;
$this->tmpfs = $tmpfs;
$this->init = $init;
$this->imageTag = $imageTag;
$this->dockerActionManager = $dockerActionManager;
}
@ -97,6 +100,10 @@ class Container {
return $this->restartPolicy;
}
public function GetImageTag() : string {
return $this->imageTag;
}
public function GetReadOnlySetting() : bool {
return $this->readOnlyRootFs;
}

View file

@ -277,6 +277,11 @@ class ContainerDefinitionFetcher
$init = $entry['init'];
}
$imageTag = '';
if (isset($entry['image_tag'])) {
$imageTag = $entry['image_tag'];
}
$containers[] = new Container(
$entry['container_name'],
$displayName,
@ -298,6 +303,7 @@ class ContainerDefinitionFetcher
$readOnlyRootFs,
$tmpfs,
$init,
$imageTag,
$this->container->get(DockerActionManager::class)
);
}

View file

@ -48,7 +48,11 @@ class DockerActionManager
}
private function BuildImageName(Container $container) : string {
return $container->GetContainerName() . ':' . $this->GetCurrentChannel();
$tag = $container->GetImageTag();
if ($tag === '') {
$tag = $this->GetCurrentChannel();
}
return $container->GetContainerName() . ':' . $tag;
}
public function GetContainerRunningState(Container $container) : IContainerState
@ -95,7 +99,10 @@ class DockerActionManager
public function GetContainerUpdateState(Container $container) : IContainerState
{
$tag = $this->GetCurrentChannel();
$tag = $container->GetImageTag();
if ($tag === '') {
$tag = $this->GetCurrentChannel();
}
$runningDigests = $this->GetRepoDigestsOfContainer($container->GetIdentifier());
if ($runningDigests === null) {