allow to add dependencies and php extensions into the Nextcloud container

Signed-off-by: Simon L <szaimen@e.mail.de>
This commit is contained in:
Simon L 2022-11-08 21:38:31 +01:00
parent 63f568ef36
commit da2b967a33
11 changed files with 83 additions and 5 deletions

View file

@ -158,7 +158,9 @@
"FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch",
"PHP_MAX_TIME=%NEXTCLOUD_MAX_TIME%",
"TRUSTED_CACERTS_DIR=%NEXTCLOUD_TRUSTED_CACERTS_DIR%",
"STARTUP_APPS=%NEXTCLOUD_STARTUP_APPS%"
"STARTUP_APPS=%NEXTCLOUD_STARTUP_APPS%",
"ADDITIONAL_APKS=%NEXTCLOUD_ADDITIONAL_APKS%",
"ADDITIONAL_PHP_EXTENSIONS=%NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS%"
],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"

View file

@ -561,6 +561,20 @@ class ConfigurationManager
return $this->GetEnvironmentalVariableOrConfig($envVariableName, $configName, $defaultValue);
}
public function GetNextcloudAdditionalApks() : string {
$envVariableName = 'NEXTCLOUD_ADDITIONAL_APKS';
$configName = 'nextcloud_additional_apks';
$defaultValue = '';
return trim($this->GetEnvironmentalVariableOrConfig($envVariableName, $configName, $defaultValue));
}
public function GetNextcloudAdditionalPhpExtensions() : string {
$envVariableName = 'NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS';
$configName = 'nextcloud_additional_php_extensions';
$defaultValue = 'imagick';
return trim($this->GetEnvironmentalVariableOrConfig($envVariableName, $configName, $defaultValue));
}
public function GetCollaboraSeccompPolicy() : string {
$defaultString = '--o:security.seccomp=';
if ($this->GetCollaboraSeccompDisabledState() !== 'true') {

View file

@ -332,6 +332,10 @@ class DockerActionManager
$replacements[1] = $this->configurationManager->GetCollaboraSeccompPolicy();
} elseif ($out[1] === '%NEXTCLOUD_STARTUP_APPS%') {
$replacements[1] = $this->configurationManager->GetNextcloudStartupApps();
} elseif ($out[1] === '%NEXTCLOUD_ADDITIONAL_APKS%') {
$replacements[1] = $this->configurationManager->GetNextcloudAdditionalApks();
} elseif ($out[1] === '%NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS%') {
$replacements[1] = $this->configurationManager->GetNextcloudAdditionalPhpExtensions();
} else {
$replacements[1] = $this->configurationManager->GetSecret($out[1]);
}