diff --git a/php/containers.json b/php/containers.json index df841f44..06458424 100644 --- a/php/containers.json +++ b/php/containers.json @@ -81,7 +81,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -800 }, { "container_name": "nextcloud-aio-database", @@ -138,7 +139,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -1000 }, { "container_name": "nextcloud-aio-nextcloud", @@ -280,7 +282,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -900 }, { "container_name": "nextcloud-aio-notify-push", @@ -321,7 +324,8 @@ "read_only": true, "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -400 }, { "container_name": "nextcloud-aio-redis", @@ -363,7 +367,8 @@ "read_only": true, "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -800 }, { "container_name": "nextcloud-aio-collabora", @@ -413,7 +418,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -200 }, { "container_name": "nextcloud-aio-talk", @@ -484,7 +490,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -200 }, { "container_name": "nextcloud-aio-talk-recording", @@ -538,7 +545,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -100 }, { "container_name": "nextcloud-aio-borgbackup", @@ -609,7 +617,8 @@ "tmpfs": [ "/tmp", "/nextcloud_aio_volumes" - ] + ], + "oom_score_adj": 0 }, { "container_name": "nextcloud-aio-watchtower", @@ -632,7 +641,8 @@ "read_only": true, "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": 0 }, { "container_name": "nextcloud-aio-domaincheck", @@ -665,7 +675,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": 0 }, { "container_name": "nextcloud-aio-clamav", @@ -712,7 +723,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": 0 }, { "container_name": "nextcloud-aio-onlyoffice", @@ -756,7 +768,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -200 }, { "container_name": "nextcloud-aio-imaginary", @@ -798,7 +811,8 @@ ], "secrets": [ "IMAGINARY_SECRET" - ] + ], + "oom_score_adj": -100 }, { "container_name": "nextcloud-aio-fulltextsearch", @@ -850,7 +864,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": 0 }, { "container_name": "nextcloud-aio-docker-socket-proxy", @@ -877,7 +892,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -100 }, { "container_name": "nextcloud-aio-harp", @@ -918,7 +934,8 @@ ], "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -400 }, { "container_name": "nextcloud-aio-whiteboard", @@ -964,7 +981,8 @@ "read_only": true, "cap_drop": [ "NET_RAW" - ] + ], + "oom_score_adj": -100 } ] } diff --git a/php/src/Container/Container.php b/php/src/Container/Container.php index 6b6c5af9..1d4ef8cd 100644 --- a/php/src/Container/Container.php +++ b/php/src/Container/Container.php @@ -39,6 +39,7 @@ readonly class Container { public AioVariables $aioVariables, public string $documentation, public bool $hideFromList, + public int $oomScoreAdj, private DockerActionManager $dockerActionManager ) { } diff --git a/php/src/ContainerDefinitionFetcher.php b/php/src/ContainerDefinitionFetcher.php index e4625a24..213b3c78 100644 --- a/php/src/ContainerDefinitionFetcher.php +++ b/php/src/ContainerDefinitionFetcher.php @@ -345,6 +345,11 @@ readonly class ContainerDefinitionFetcher { $hideFromList = $entry['hide_from_list'] ?? false; + $oomScoreAdj = 0; + if (isset($entry['oom_score_adj'])) { + $oomScoreAdj = $entry['oom_score_adj']; + } + $containers[] = new Container( $entry['container_name'], $displayName, @@ -371,6 +376,7 @@ readonly class ContainerDefinitionFetcher { $aioVariables, $documentation, $hideFromList, + $oomScoreAdj, $this->container->get(DockerActionManager::class) ); } diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php index ca6a4d72..af24f749 100644 --- a/php/src/Docker/DockerActionManager.php +++ b/php/src/Docker/DockerActionManager.php @@ -394,6 +394,8 @@ readonly class DockerActionManager { $requestBody['StopTimeout'] = $maxShutDownTime; } + $requestBody['HostConfig']['OomScoreAdj'] = $container->oomScoreAdj; + $capAdds = $container->capAdd; if (count($capAdds) > 0) { $requestBody['HostConfig']['CapAdd'] = $capAdds;