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
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) {