Merge pull request #335 from nextcloud/enh/noid/disallow-database-update-if-failed

correctly disable database update if it failed before
This commit is contained in:
Simon L 2022-03-14 15:00:55 +01:00 committed by GitHub
commit 6b3cba411e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 14 deletions

View file

@ -33,9 +33,17 @@ class DockerController
$this->PerformRecursiveContainerStart($dependency); $this->PerformRecursiveContainerStart($dependency);
} }
$pullcontainer = true;
if ($id === 'nextcloud-aio-database') {
if ($this->dockerActionManager->GetDatabasecontainerExitCode() > 0) {
$pullcontainer = false;
}
}
$this->dockerActionManager->DeleteContainer($container); $this->dockerActionManager->DeleteContainer($container);
$this->dockerActionManager->CreateVolumes($container); $this->dockerActionManager->CreateVolumes($container);
if ($pullcontainer) {
$this->dockerActionManager->PullContainer($container); $this->dockerActionManager->PullContainer($container);
}
$this->dockerActionManager->CreateContainer($container); $this->dockerActionManager->CreateContainer($container);
$this->dockerActionManager->StartContainer($container); $this->dockerActionManager->StartContainer($container);
$this->dockerActionManager->ConnectContainerToNetwork($container); $this->dockerActionManager->ConnectContainerToNetwork($container);

View file

@ -261,19 +261,14 @@ class DockerActionManager
public function PullContainer(Container $container) : void public function PullContainer(Container $container) : void
{ {
$pullcontainer = true;
if ($container->GetIdentifier() === 'nextcloud-aio-database') {
if ($this->GetDatabasecontainerExitCode() > 0) {
$pullcontainer = false;
}
}
if ($pullcontainer) {
$url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', urlencode($this->BuildImageName($container)))); $url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', urlencode($this->BuildImageName($container))));
try { try {
$this->guzzleClient->post($url); $this->guzzleClient->post($url);
} catch (RequestException $e) { } catch (RequestException $e) {
throw $e; error_log($e->getMessage());
} // Don't exit here because it is possible that the image is already present
// and we ran into docker hub limits.
// We will exit later if not image should be available.
} }
} }