diff --git a/php/src/Container/Container.php b/php/src/Container/Container.php index 6b6c5af9..5a357783 100644 --- a/php/src/Container/Container.php +++ b/php/src/Container/Container.php @@ -27,6 +27,8 @@ readonly class Container { public bool $enableNvidiaGpu, /** @var string[] */ public array $capAdd, + /** @var string[] */ + public array $capDrop, public int $shmSize, public bool $apparmorUnconfined, /** @var string[] */ diff --git a/php/src/ContainerDefinitionFetcher.php b/php/src/ContainerDefinitionFetcher.php index e4625a24..4f581235 100644 --- a/php/src/ContainerDefinitionFetcher.php +++ b/php/src/ContainerDefinitionFetcher.php @@ -298,6 +298,11 @@ readonly class ContainerDefinitionFetcher { $capAdd = $entry['cap_add']; } + $capDrop = []; + if (isset($entry['cap_drop'])) { + $capDrop = $entry['cap_drop']; + } + $shmSize = -1; if (isset($entry['shm_size'])) { $shmSize = $entry['shm_size']; @@ -360,6 +365,7 @@ readonly class ContainerDefinitionFetcher { $devices, $enableNvidiaGpu, $capAdd, + $capDrop, $shmSize, $apparmorUnconfined, $backupVolumes, diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php index 940814fe..40747725 100644 --- a/php/src/Docker/DockerActionManager.php +++ b/php/src/Docker/DockerActionManager.php @@ -378,9 +378,9 @@ readonly class DockerActionManager { $requestBody['HostConfig']['CapAdd'] = $capAdds; } - // Disable arp spoofing - if (!in_array('NET_RAW', $capAdds, true)) { - $requestBody['HostConfig']['CapDrop'] = ['NET_RAW']; + $capDrops = $container->capDrop; + if (count($capDrops) > 0) { + $requestBody['HostConfig']['CapDrop'] = $capDrops; } // Disable SELinux for AIO containers so that it does not break them